mei_13のPython講座 ロゴ

【Pythonコラム】画像処理を自由自在に!PythonのPillowライブラリ入門




画像処理を自由自在に!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/)



< Pandas-unique()
コラム一覧に戻る
re.findall() >

レッスン概要

◯月額4,000円で質問し放題!!
◯完全オンライン
◯翌日までには必ず返信
◯挫折しない独自の学習メソッド
◯圧倒的高評価!!
◯テキストベースで時間を選ばない
◯高品質なサンプルコード
詳細はこちら
興味がある方はまず質問だけでもどうぞ!