2022年1月24日月曜日

【Pillow】画像読込みとモード・サイズ取得

 画像処理ライブラリPillowのImage.openにより画像を読み出す方法、読み出した画像のモード・サイズ情報を取得する方法を解説する。

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

from PIL import Image

また例に用いる元画像 'leaves.jpg'(幅600ピクセルx高さ400ピクセル) は以下(フリー写真素材ぱくたそより)





1. 画像読込み(Image.open)

 Image.openの書式は以下。引数が3つあるが後ろ2つは省略可。通常はファイルパス・ファイル名を与えることでファイルが読みだせる。

PIL.Image.open(fp, mode='r', formats=None)
引数 意味
fp 開くファイルのパス、ファイル名
mode 読み取りモードを意味する“r”を指定する。省略可。
formats タプルまたはリストで読み取るフォーマットを指定。省略した場合全てのフォーマットを読み出す。


'leaves.jpg'を読み出す例

from PIL import Image

im = Image.open('leaves.jpg')


2. モードの取得(Image.mode)

modeにより画像のモードが取得できる。主なモードとしては
1 : 1ビット(白黒)
L : 8ビット(グレースケール)
RGB : 8ビット3チャンネル(RGBカラー)
RGBA : 8ビット4チャンネル(RGBカラー+アルファ)
CMYK : 8ビット4チャンネル(CMYKカラー)

'leaves.jpg'を読み出し、モードを取得する例

from PIL import Image

im = Image.open('leaves.jpg')
print(im.mode)

実行結果

RGB


3. サイズの取得(Image.size, Image.width, Image.height)

 Image.sizeによりピクセル単位の画像の幅、高さのタプルが取得できる。
またImage.widthで画像の幅
Image.heightで画像の高さが取得できる。

'leaves.jpg'を読み出しサイズを取得する例

from PIL import Image

im = Image.open('leaves.jpg')
print(im.size)
print(im.width)
print(im.height)

実行結果

(600, 400)
600
400


4. リファレンス

Pillow (PIL Fork) > Image Module > PIL.Image.open(fp, mode='r', formats=None)
Pillow (PIL Fork) > Image Module > Image.mode: str
Pillow (PIL Fork) > Image Module > Image.size: tuple[int]
Pillow (PIL Fork) > Image Module > Image.width: int
Pillow (PIL Fork) > Image Module > Image.height: int

使用バージョン:Python 3.8.8 / Pillow 8.2.0

0 件のコメント:

コメントを投稿