छवि सरणी से कुछ सूचकांकों द्वारा सभी पिक्स कैसे प्राप्त करें

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

उन लिंक में टो समान प्रश्न हैं, एक निश्चित सूचकांकों पर अजगर सुन्न 2D सरणी है , और दूसरा NumPy ndays में संग्रहीत छवियों से विशिष्ट (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यह सिर्फ एक सूची है, भले ही यह किसी भी "सरणी की तरह" संरचना इनपुट के रूप में की उम्मीद है काम करेगा ।