Pythonで画像処理(1)GUIで画像表示する

IT

前回、全6回に渡りPythonで音声処理の連載をしました。

今回からPythonで画像処理の記事を連載していこうと思います。

まず前準備として、画像処理の様子をわかりやすくするために、PythonでGUI(グラフィカルユーザインターフェース)を作成し、画像を表示するだけのプログラムについて説明します。

GUIというと、C++やJavaなどのプログラミング言語で実現しようとすると割と面倒で、僕の場合、心の障壁がありましたが、Pythonでは、数十行で実現可能で、そういう意味で積極的に利用が可能になります。

今回実行するプログラムに必要となる追加モジュールは、画像処理モジュール「pillow」です。予めインストールしておきましょう。

pip install pillow

では早速プログラム全体を見ていきます。GUIを利用できる環境(Windows、MAC、Linux等)で、モジュールインストールが済んでいれば、実行可能なはずです。

たったこれだけのプログラムでGUIウィンドウで画像が表示されます。

実はPySimpleGUIという追加モジュールを利用すればもっと簡単にGUI表示できますが、今回は少し複雑なことを実現するため、Python標準のtkinterを利用しています。

2、3行目では、本プログラムで必要となるモジュールをインポートしています。

tkinterはPython標準のGUIモジュールです。PIL(Pillow)はPythonで画像処理を実現する際に、一般的に利用するモジュールです。

5行目から30行目までがメイン処理です。

7行目で、画像ファイルのファイル名を指定します。今回は「yama.jpg」という画像をプログラムファイルと同ディレクトリに置きました。下記画像です。

旅行した際の写真です。どこだったかな。。

10行目で、Pillowモジュールにより「yama.jpg」を開きます。

13行目では、開いた画像のサイズを取得しています。wに横サイズ(px)、hに縦サイズ(px)が入ります。

16行目から18行目で、GUIを作成します。16行目でtkinterのオブジェクトを作成し、17行目でウィンドウのタイトルを指定、18行目でウインドウサイズ変更不可に設定しています。

21行目では、Pillowモジュールにより開いた画像をtkinterでGUI表示できるよう変換しています。

24行目で、GUIにCanvasを定義しています。Canvasとは、GUIで図形操作をする際に利用するオブジェクトです。これを利用すればお絵かきソフトを作ることもできます。画像を表示するだけであればCanvasは不要ですが、今後作成する画像処理プログラムのために用意しておきます。

27行目で、Canvasに画像を貼り付けます。Windowsのペイントというソフトで画像を貼り付けるイメージです。

28行目で、GUIに定義したCanvasを適用し、表示します。

30行目で、GUIを表示します。


プログラムを実行すると、下記のようなウインドウが表示されます。

Macで実行した結果です。

Windowsでも実行可能です。

うまくいきました。

簡単でしたが、今回は以上となります。

次回からは、本プログラムを元に画像処理プログラムを作成していきます。

次回は、GUIに変換ボタンを設置し、画像を白黒に変換してみます。

コメント

タイトルとURLをコピーしました