見出し画像

Pythonによる人工知能学習 その8 アプリで画像処理

オリジナルのボイスチェンジャーを開発するための人工知能学習の記録です。今回は、簡易なユーザーインターフェースを持ったアプリから、画像を読み込んで処理する所を学びます。これが音声になればボイスチェンジャーにちょっと近づくかな😊

✔外部ライブラリをインストールする

ファイル操作は標準ライブラリでも出来るようなんですが、画像データを扱う機能はPythonの標準ライブラリになは無いようです。今回は「Pillow」という画像を扱うライブラリを使います。

ちなみに、外部ライブラリは、Python公式の外部ライブラリサイト「PyPI」からダウンロードできるようですね。

画像1

https://pypi.org/ に移動して「Pillow」を検索したのが上記の画面です。

画像2

次の画面で、インストール用のコマンドが表示されます。Windows用なので、Mac要は「pip3 install Pillow」になります。3が付くのを忘れそうですね。

pip3 install Pillow

※アンインストールはこちら

pip3 uninstall Pollow

Windowsはコマンドプロンプトから、Macはターミナルから打ち込むようです。※Python3がインストール成功していれば動作します。

画像4

✔画像を表示するアプリを作る

import tkinter as tk
import tkinter.filedialog as fd
import PIL.Image
import PIL.ImageTk

def dispPhoto(path):
   # 画像を読み込む
   new_image = PIL.Image.open(path).resize((300,300))
   # そのイメージをラベルに表示する
   image_data = PIL.ImageTk.PhotoImage(new_image)
   image_label.configure(image=image_data)
   image_label.image = image_data

def openFile():
   fpath = fd.askopenfilename()
   if fpath:
       dispPhoto(fpath)

root = tk.Tk()
root.geometry("400x350")
btn = tk.Button(text = "ファイルを開く", command = openFile)
image_label = tk.Label()
btn.pack()
image_label.pack()
tk.mainloop()

こんな感じのコードで動くようです。

画像4

パソコンの中にある画像のパスを読み込んで、そのパスの画像を表示する。tkinterのラベルは、画像も表示出来るんですね。画像以外にも色々表示できるのかな???

ボタンを押す→openFile()を動作させる→pathが取得できていたら→dispPhoto()を動作させてpathの画像をラベルに表示する。という順番の処理ですね。

関数をメイン処理の上側に書くのがまだ慣れませんね。実際に開発する時は、メイン処理と同じファイルに書かずに別のファイルにまとめちゃいたいですね。

✔コメント文の書き方

コメント文の書き方、1行コメント以外にも複数コメントもある。これは慣れですね。

画像5

✔読み込んだ画像に処理をして表示(→モノクロに変換)

画像6

.convert("L")を追加する事で、モノクロに変換できました。変換を重ねがけ出来る感じですね。モノクロにして、サイズ変換して。

画像7

一旦32✕32にサイズを小さくして、再び大きくする。ということでモザイクも出来ました。resample=0を入れることで、カクカクになりますが、それが無いとモザイクではなく、ぼかしのような効果になりました。(拡大時に周囲のピクセルを見てできるだけスムーズに拡大する処理が自動で入ってる感じですね)

まとめ

ついに、ローカルアプリ化についても完了です。次回から人工知能のアレコレを始めていきます。画像の学習機能で、うちの2匹の猫の見分けができるかどうか?とかやってみたいです。

この記事が気に入ったらサポートをしてみませんか?