画像配列から特定のインデックスですべてのpixを取得する方法
 Jan 18 2021
画像配列の形状は(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 Jan 18 2021 at 14:50
転置する必要がありindicesます。
img_rgb[tuple(np.transpose(indices))]
np.tranpose()場合でも動作しますindices、それは、入力として任意の「アレイ状」構造を期待するので、リストだけです。