2022年4月29日金曜日

【Pillow】getpixel/putpixelによる画素の取得と書き換え

 画像処理ライブラリPillowのgetpixelは指定した座標の画素を取得できる。またputpixelで指定した座標の画素を書き換えられる。

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

from PIL import Image

 例に用いる画像 'tulip.jpg' は以下(フリー写真素材ぱくたそより)




1. getpixel/putpixelの書式

 getpixelの書式は以下。引数は座標xyのみで(x, y)のタプルを与える。

Image.getpixel(xy)

 putpixelの書式は以下。引数は座標xyおよび画素値value。座標は(x, y)のタプルを与える。画素値はRGBカラー画像の場合、3チャンネルのタプル(R, G, B)を与える

Image.putpixel(xy, value)

2. getpixel/putpixelの使用例

 getpixelで画素値を得て、putpixelで画素値を255-画素値に書き換えるネガポジ反転の例。

from PIL import Image

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

for y in range(im.height):
    for x in range(im.width):
        r, g, b = im.getpixel((x, y))
        im.putpixel((x, y), (255-r, 255-g, 255-b))

im.save('inv.jpg')



3. リファレンス

Pillow (PIL Fork) > The Image Class > Image.getpixel(xy)
Pillow (PIL Fork) > The Image Class > Image.putpixel(xy, value)

使用バージョン:Python 3.10.4 / Pillow 9.1.0

0 件のコメント:

コメントを投稿