Pythonで画像処理(2)白黒画像に変換する

IT

前回の記事では、Pythonを使って画像処理を行う前段として、PythonでGUIのウインドウを作成し、画像を表示するプログラムを作成しました。

今回は、GUIに変換ボタンを追加し、変換ボタンを押したらカラー画像を白黒画像に変換する処理を追加してみます。

プログラム全体は以下になります。

今回は、GUIに変換ボタンを追加し、白黒に変換する処理を追加しており、それ以外は前回と同一です。

追加部分を解説していきます。

5行目から7行目では、プログラム全体で利用するグローバル変数を初期化しています。

5行目の「read_image」は、画像処理モジュール「Pillow」で読み込むイメージオブジェクト変数用です。

6行目の「img」は、GUIモジュール「tkinter」で読み込むイメージオブジェクト変数用です。

7行目の「cvs」は、tkinterのキャンバスオブジェクト変数用です。

10行目から15行目では、白黒画像に変換する関数を定義しています。

10行目で、関数「make_painting」の定義を開始しています。引数は取りません。

11行目で、グローバル変数を関数内で利用するための定義を追加しています。

12行目で、読み込んだカラー画像を白黒画像(グレースケール)に変換しています。

14行目で、変換した画像で、GUI用のイメージオブジェクトを更新しています。

15行目で、更新した画像オブジェクトでキャンバスを更新しています。


メイン処理には、ボタンを追加する処理を2行追記しています。

43行目で、「変換」ボタンを作成し、白黒画像への変換関数「make_painting」をボタンをクリックした際のコマンドとして紐付けています。

44行目で、作成したボタンをGUIに反映しています。


それでは作成したプログラムを実行してみましょう。

実行すると下記ウインドウが表示されます。

カラー画像「yama.jpg」と変換ボタンが表示されました。

変換ボタンをクリックすると下記のようになります。

白黒画像(グレースケール)に変換されました。

グレースケールに変換する場合は、RGBそれぞれの値を足して平均値を計算し、平均値をRGBそれぞれに代入してグレーにする処理が必要ですが、Pythonなら、convert関数でたった一行です。

簡単ですが、今回は以上です。

次は、画像にモザイクを入れる処理をやってみたいと思います。

コメント

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