画像処理を自由自在に!PythonのPillowライブラリ入門
Pythonで画像処理を行うなら、まず名前が挙がるのが「Pillow」ライブラリです。Pillowは、画像ファイルを開いたり、保存したり、加工したり…と、様々な操作を簡単に行うための強力なツールです。今回は、Pillowの基本的な使い方から、少し応用的な処理まで、初心者の方にもわかりやすく解説していきます。
Pillowって何?
Pillowは、Python Imaging Library (PIL) という有名なライブラリをフォークして開発されたものです。PILは長らく更新が止まっていましたが、Pillowは活発な開発が続けられ、最新のPython環境に対応し、より多くの画像フォーマットをサポートしています。
Pillowのインストール
Pillowを使うには、まずインストールが必要です。ターミナルやコマンドプロンプトで以下のコマンドを実行します。
pip install Pillow
これでPillowのインストールは完了です。
Pillowの基本的な使い方
Pillowで画像を扱うには、まず PIL.Image
モジュールをインポートします。
from PIL import Image
1. 画像を開く:
画像を開くには、Image.open()
関数を使います。
image = Image.open("sample.jpg") # 画像ファイル名を指定
このコードで、sample.jpg
という画像を読み込み、image
という変数に格納します。
2. 画像の情報を取得する:
開いた画像の情報を取得することができます。
print(image.format) # 画像のフォーマット (JPEG, PNGなど)
print(image.size) # 画像のサイズ (幅, 高さ)
print(image.mode) # 画像のモード (RGB, Lなど)
image.format
は画像のファイル形式、image.size
は画像の幅と高さのタプル、image.mode
は画像の色空間を表します。例えば、RGBは赤・緑・青の3色、Lはグレースケールを表します。
3. 画像を表示する:
画像を画面に表示するには、image.show()
関数を使います。
image.show()
この関数は、OSに標準搭載された画像ビューアで画像を表示します。
4. 画像を保存する:
加工した画像を保存するには、image.save()
関数を使います。
image.save("output.png") # ファイル名と保存形式を指定
保存形式は拡張子で指定します。JPEGで保存する場合は output.jpg
のように指定します。
Pillowでできること (例)
Pillowを使うと、様々な画像処理を行うことができます。いくつか例を見てみましょう。
リサイズ:
画像のサイズを変更するには、image.resize()
関数を使います。
new_size = (300, 200) # 新しいサイズ (幅, 高さ)
resized_image = image.resize(new_size)
resized_image.save("resized.png")
トリミング:
画像の一部を切り抜くには、image.crop()
関数を使います。
box = (100, 100, 400, 300) # 切り抜く範囲 (左, 上, 右, 下)
cropped_image = image.crop(box)
cropped_image.save("cropped.png")
回転:
画像を回転させるには、image.rotate()
関数を使います。
rotated_image = image.rotate(45) # 45度回転
rotated_image.save("rotated.png")
色調の変更 (グレースケール変換):
画像をグレースケールに変換するには、image.convert()
関数を使います。
gray_image = image.convert("L") # "L"はグレースケールを表す
gray_image.save("gray.png")
応用的な処理
Pillowには、これらの基本的な操作以外にも、画像のフィルタ処理やピクセル単位での操作など、より高度な処理を行うための機能が豊富に用意されています。例えば、ImageFilter
モジュールを使うと、ぼかしやシャープネスなどの効果を画像に適用できます。
from PIL import ImageFilter
blurred_image = image.filter(ImageFilter.BLUR)
blurred_image.save("blurred.png")
まとめ
Pillowは、Pythonで画像処理を行う上で非常に強力なライブラリです。この記事では、Pillowの基本的な使い方といくつかの応用例を紹介しました。Pillowは、画像処理の可能性を大きく広げてくれるツールです。ぜひ色々な機能を試して、自分の作りたい画像処理を実装してみてください。Pillowの公式ドキュメントも参考にしながら、画像処理の世界を楽しんでください! (https://pillow.readthedocs.io/en/stable/)