【Python】画像加工のやり方

コラム

COLUMN

【Python】画像加工のやり方

HTML/CSS 基礎

Pillowについて

PillowはPythonプログラム内で画像を読み込むためのベースとなるライブラリです。

https://pillow.readthedocs.io/en/stable/

今回は基礎の操作である以下の3つの手順を試してみましょう。

①画像の読み込み

②画像をグレースケールのモノクロ画像へ変換

③画像の保存

①画像の読み込み

pillowを利用するためにインポートを行います、また画像の表示に利用するためにMatplotlibのpyplotもインポートしています。

次に加工したい画像を用意し、コードが置いてある階層と同じ場所に格納します。

今回は富士山のフリー画像をpillowで読み込みを行います。

読み込んだ画像を表示したい場合は、引数に画像を指定しmatplotlib.pyplotの plt.imshow() を実行することで、グラフと同じような形式で画像を表示できます。

②画像をグレースケールのモノクロ画像へ変換

Pillowのオブジェクトが持つ convert() を実行し、mount_fuji.jpg の画像をモノクロ画像へ変換します。

convert() の引数に “L” と入力することで、モノクロの画像が作成されます。

また先ほどのようにplt.imshow() を実行することでグレースケール化した画像を出力することが出来ますが、そのままだと、色合いが正しく表示されません。

 

これはMatplotlibのデフォルトのカラーマップ設定によるものです。

モノクロ画像の場合、色味が暗いほど青く、明るくなるにつれて 青 → 緑 → 黄色 の色味で表示されるという設定になっています。

そのため、正しく 黒 → グレー → 白 の色味でモノクロ画像を表示するには、imshow() に「カラーマップの設定」が必要です。

方法としては imshow() に cmap=”gray” というキーワード引数を追記するだけです。

③画像の保存

加工した画像を保存するなら save() を使います。ファイルにつけたい名前を、引数として指定することになります。

ここでは mount_fuji_gray.png というファイル名にしました。

なお、imshow() と違って save() で保存する場合は、特別な指定をしなくても正しいモノクロの画像として保存されます。

これでモノクロの富士山の写真(mount_fuji.png)が mount_fuji.png と同じディレクトリに保管されました。

グレースケールとモノクロの違い

モノクロとは「monochrome(モノクローム)」の略になります。

この言葉の意味は「単色」「1つの色」となり、黒を指している言葉ではありません。

一般的には、モノクロは白と黒で表現されているものという認識になります。

ただし、本来は1色で表現されているものはモノクロとなります。

一方で、グレースケールとは、白と黒の中間色であるグレーの濃淡(グラデーション )を、254階調で表したものになります。

白黒とは異なり、豊かな階調で表現されますので、使っている色は黒1色でも豊かな表現が可能です。

写真やイラストなどがあり綺麗に印刷したい場合はグレースケールを選択すると良いでしょう

テックアイエスの体験会