画像配列から特定のインデックスですべてのpixを取得する方法
画像配列の形状は(540, 960, 3)
、で、次のようになります。
img_rgb = [[[ 95 71 71]
[ 95 71 71]
[ 95 71 71]
...
[182 171 181]
[182 171 181]
[182 171 181]]
[[ 95 71 70]
[ 95 71 70]
[ 95 71 71]
...
[183 172 182]
[183 172 182]
[183 172 182]]
[[ 95 72 70]
[ 95 71 70]
[ 95 71 71]
...
[183 172 182]
[183 172 182]
[183 172 182]]
...
[[ 36 35 45]
[ 36 35 45]
[ 36 35 45]
...
[ 49 45 50]
[ 49 45 50]
[ 49 45 50]]
[[ 36 35 45]
[ 36 35 45]
[ 36 35 45]
...
[ 49 45 50]
[ 49 45 50]
[ 49 45 50]]
[[ 36 35 45]
[ 36 35 45]
[ 36 35 45]
...
[ 49 45 50]
[ 49 45 50]
[ 49 45 50]]]
そしてindices
、各要素のインデックスなどを示す要素を取得したいと思いますindices
。
indices = [
[0, 0], [0, 1], [0, 2]
]
期待される出力
[
[ 95 71 71],
[ 95 71 71],
[ 95 71 71],
]
これらのリンクには2つの同様の質問があります。1つは特定のインデックスに対するPythonnumpy 2D配列の合計であり、もう1つはNumPy ndarraysに格納されている画像から特定の(R、G、B)カラー値の(x、y)インデックスを見つけることです。
IndexError: too many indices for array
質問を1つずつ試してみるとimg_rgb[tuple(indices)]
。
回答
fountainhead
転置する必要がありindices
ます。
img_rgb[tuple(np.transpose(indices))]
np.tranpose()
場合でも動作しますindices
、それは、入力として任意の「アレイ状」構造を期待するので、リストだけです。