【Python】カラー画像を白黒画像に変換する方法

【Python】カラー画像を白黒画像に変換する方法

カラー画像を白黒画像にして趣を出したいって人いますよね (たぶん)。
今回は数行のpythonのコードで簡単にカラー画像を白黒画像に変換できる方法をご紹介します。

動作環境
macOS Catalina(10.15.6), python3.7.6, Atomエディタ1.44.0

扱うカラー画像と変換方法について

白黒画像に変換するカラーの画像は以下の猫ちゃんです。
cat.jpgという名前で
Desktop/Dr.code/python/data-analysis/monochrome-imageに置きます。

扱うカラー画像と変換方法について
カラーの猫ちゃん

この猫ちゃんをいい感じの白黒画像にして趣を出すには、pythonのモジュールpillowを使用します。
めちゃくちゃ簡単にできます。

カラー画像を白黒画像に変換する具体的な方法 (サンプルコードあり)

カラー画像を白黒画像に変換する具体的な方法 (サンプルコードあり)
白黒の猫ちゃん

Pillow(PIL)を使うための準備

pipコマンドを用いれば簡単にPillow(PIL)がインストールできます。
次のようにターミナルにコマンドを入力して、returnキーを押してください。

pip install pillow

最終的にSuccessfullyというワードが書かれていれば、無事にインストール完了です。
すでにインストールされている場合は、already satisfiedというワードが表示されると思います。

プログラムの実装(サンプルコード)

猫ちゃんのカラー画像を白黒画像に変換するコードは次のようになります。
convert_monochrome_image.pyという名前でDesktop/Dr.code/python/data-analysis/monochrome-imageに置きます。猫ちゃんのカラー画像が置いてある同じ階層です。

from PIL import Image

img = Image.open('cat.jpg')
gray_img = img.convert('L')
gray_img.save('cat_gray.jpg')

コードが書けたら、ターミナル上でcwdをDesktop/Dr.code/python/data-analysis/monochrome-imageに変更し、$ python convert_monochrome_image.pyとコマンド入力し、プログラムを実行しましょう。

出力結果

上にある白黒の猫ちゃんの画像cat_gray.jpgが生成されていれば正常にプログラムが実行されています。

コードの解説

importの行を除くと3行しかないので、全部が白黒画像への変換にとって重要になってきます。

img = Image.open('cat.jpg')

Imageopenメソッドを用いてcat.jpgを読み込んでいます。
読み込んだデータをimgという名前の変数に代入しています。

gray_img = img.convert('L')

この行でimgを白黒画像に変換しています。
convert('L')が白黒モードにするメソッドです。
白黒になった画像データをgray_imgという名前の変数に代入しています。

gray_img.save('cat_gray.jpg')

この行では白黒画像を保存しています。
ここではcat_gray.jpgという名前で白黒画像を保存しています。