Pillow(Python)でピクセルの色を取得する方法

Pocket

PythonのPillowで画像の各ピクセルの色を取得する方法についてメモしておきます。


目次


サイズ変更

画像サイズが大きいと処理に時間がかかるのでサイズを小さくしておきます。
次のコードは幅と高さの長い方法を256ピクセルにします。

from PIL import Image
fn="sagamiko.jpeg"
img_src = Image.open(fn)
target_size = 256
haba, takasa = img_src.size
if haba > takasa:
  w = target_size
  h = target_size * takasa // haba
else:
  w = target_size * haba // takasa
  h = target_size
img_small = img_src.resize((w, h))
img_small.show()

減色

減色については次のようにします。
次のコードは色の数を32色にします。

from PIL import Image
fn = "sagamiko.jpg"
img_src = Image.open(fn)
num_colors = 32
img_quantize = img_src.quantize(colors=num_colors, method=0, dither=1)
img_quantize.show()

ピクセルの色を取得

ここからが本題です。
ピクセルの色を取るにはgetpixelを使います。引数には(x座標,y座標)をタプルで指定します。
色がRGBのタプルで返ります。
次のコードは画像の各ピクセルの色を二次元のリストcellsにセットしています。
(縦座標,横座標)になっている点に注意してください。

from PIL import Image
fn="sagamiko.jpg"
img_src = Image.open(fn)
w, h = img_src.size
cells=[]
for j in range(h):
  parts=[]
  for i in range(w):
    rgb = img_src.getpixel((i, j))
    parts.append(rgb)
  cells.append(parts)
print(cells)

結果
[[(126, 154, 178), (128, 156, 180), (132, 158, 183), ...]]

[ 2022年8月5日 | カテゴリー: Python | タグ: ]

« | »

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

送信してください。


タグ

カテゴリー

最近の投稿

最近のコメント

固定ページ

アーカイブ

stabucky

写真

メタ情報