LogoMark.png

Pillow

Pillow(PIL fork)

https://pillow.readthedocs.io/

Pillowは、リサイズやトリミングなどの基本的な処理を行う Python の画像処理ライブラリです。Pythonには画像認識などの高度な画像処理を行う OpenCV というライブラリもありますが、NumPy との連携(画像をNumPyの配列ndarrayとして読み込む)により、画素値ごとの算術演算が可能になります。

Pillowのインストールとインポート

Python 言語のライブラリとしてのインストールになるので、一般の Python3 の環境であれば、Terminalから以下のコマンドでインストールできます。

$ pip3 install pillow

import する際は、以下のように記述するのが一般的です。

from PIL import Image

開発が停止しているPIL(Python Image Library)からフォークされたライブラリで、import する際は、pillow ではなく 従来どおり PIL と記述します。

Google Colaboratory では Jupyter Notebook で利用できるライブラリーが「すべてインストール済み」という前提なので、ローカル環境での作業のように、必要なライブラリのインストールを行う必要はなく、コードセルに import 文を書くだけで使うことができます。




画像処理

画像の読み込みと画像情報の取得


画像処理

画像の表示と保存

サンプルプログラム

画像を読み込んで2値化するプログラムです。



図形描画

以下、PILの画像・描画オブジェクトと、IPython.displayの表示機能を使って、画面上に図形を描くプロセスの事例です。

#ライブラリの読み込み
from IPython.display import display
from PIL import Image, ImageDraw, ImageFont

# 画像オブジェクトの生成(色モード、画像サイズ、背景色を指定)
img = Image.new("RGB", (500, 500), (255, 255, 255) )
# 描画オブジェクトの生成
draw = ImageDraw.Draw( img )

# 直線、長方形、楕円の描画例
draw.line( (0, img.height, img.width, 0) , fill=(0, 0, 255), width=4 )
draw.rectangle( (100, 100, 200, 200) , fill=(0, 255, 0) )
draw.ellipse( (300, 300, 400, 400) , fill=(255, 0, 0) )

# 画面に出力
display(img)


サンプルプログラム

500 x 500 のキャンバスに、線・矩形・楕円を描くサンプルです。

公式リファレンス

詳細:https://pillow.readthedocs.io/en/stable/reference/index.html




PAGES

GUIDE

DATA

Last-modified: 2021-08-06 (金) 17:33:09