2020年4月16日木曜日

【Pillow】画像のグレースケール化、モノクローム化(convert)

 画像処理ライブラリPillowのImage.convertメソッドを画像に適用することで色空間が変更できる。カラー画像のグレースケール変換、モノクローム変換について説明する。

 Pillow(PIL)を使うためにはインポートが必要。PIL.Imageモジュールは通常以下の形式でインポートされる。

from PIL import Image

 また例に用いる元画像 'image.jpg' は以下(フリー写真素材ぱくたそより)




1. グレースケール変換(convert('L'))

 画像に対してImage.convertを適用しその際にmode'L'を指定するとグレースケール変換される。
RGB各チャンネルの輝度とグレースケールの輝度Lの変換式は以下の通り。
L = R * 299/1000 + G * 587/1000 + B * 114/1000

from PIL import Image

# 元画像の読み出し
im =Image.open('image.jpg')

# グレースケール変換
im_grayscale = im.convert('L')

# ファイルの保存
im_grayscale.save('image_grayscale.jpg', quality=95)   

実行結果




2. モノクローム変換(convert('1'))

 画像に対してImage.convertを適用しその際にmode'1'を指定するとモノクローム変換つまり白と黒の2値に分類される。
輝度128より大きい点は輝度255(白)、輝度128の以下の点は輝度0(黒)に変換される。カラー画像を直接変換しても動作するが、アルゴリズムからすると一度グレースケール変換してから白黒変換した方が意図しない動作が起きないので無難と思われる。

from PIL import Image

# 元画像の読み出し
im =Image.open('image.jpg')

# グレースケール変換
im_grayscale = im.convert('L')

# モノクローム変換
im_monochrome = im_grayscale.convert('1')

# ファイルの保存
im_monochrome.save('image_monochrome.jpg', quality=95)    

実行結果




3. リファレンス

Pillow (PIL Fork) > Image.convert

使用バージョン:Python 3.7.0 / Pillow 7.1.2

0 件のコメント:

コメントを投稿