이미지 배열에서 특정 인덱스로 모든 픽스를 얻는 방법

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],
]

이 링크에는 비슷한 질문이 있습니다. 하나는 특정 인덱스에 대한 Python numpy 2D 배열 합계 이고 다른 하나는 NumPy ndarrays에 저장된 이미지에서 특정 (R, G, B) 색상 값의 (x, y) 인덱스를 찾는 것 입니다.

그것은있어 IndexError: too many indices for array내가가 질문을했을 때 img_rgb[tuple(indices)].

답변

fountainhead Jan 18 2021 at 14:50

조옮김 만하면됩니다 indices.

img_rgb[tuple(np.transpose(indices))]

np.tranpose()indices"배열과 유사한"구조를 입력으로 예상하기 때문에 목록 일지라도 작동 합니다.