1
RGBイメージをブロック8x8 = 64(ブロック内のピクセル)に分割し、ブロックからピクセルの色を抽出します。私は、ブロックの8×8に画像を分けていますイメージをブロックに分割してピクセルの色を見つける方法
w, h = img.size # width, height of image
bw, bh = 8, 8 # block size
img = Image.open('anyimage.JPG')
img = np.array(img)
sz = img.itemsize
shape = (h-bh+1, w-bw+1, bh, bw
strides = (w*sz, sz, w*sz, sz)
blocks = np.lib.stride_tricks.as_strided(img, shape=shape, strides=strides)
print blocks[1,1]
私はブロックでこの値を取得する:
[[169 185 147 170 186 149 170 187]
[139 161 122 140 162 122 140 162]
[131 135 113 131 135 118 135 142]
[170 186 147 170 186 147 170 188]
[142 164 124 142 164 122 140 162]
[136 138 113 137 141 114 138 142]
[174 191 148 174 191 147 173 190]
[142 164 126 144 166 125 143 165]]
ブロックからすべてのピクセルの色を抽出するためにどのように?
応答ありがとうございます。 img.getdata()を試してみましたが、特定のブロックピクセルの色が必要なイメージピクセルの色全体を返します。 – Streem
申し訳ありませんが、私はあなたの目的によって少し混乱しています。期待した結果を出せますか? – dpw
ありがとう、助けのためのdpw。私は画像をブロック8pixels x 8pixels = 1ブロックに64ピクセルに分割したい、私は前に投稿したコードで既にそれを行っている。各ブロックから、RGB(112,231,222)のピクセルの色をリストし、それを輝度に変換してピクセルの色の濃さを取得したいと思います。このようにします - (.299 *赤)+(.587 *緑)+ .114 *青)、各ブロックから色が出ると最も明るいブロックを探したい。しかし、私はブロックに画像を分割した瞬間、ブロックのピクセルコーディネーションだけで、ピクセルの色を取得する方法は?私の質問が、私の英語ではっきりと申し訳なく思ってくれることを願っています。 – Streem