So erhalten Sie alle Bilder anhand bestimmter Indizes aus einem Bildarray
Die Form des Bildarrays ist (540, 960, 3)
wie folgt :
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]]]
Und ich möchte Elemente erhalten indices
, die den einzelnen Elementindex und indices
dergleichen angeben :
indices = [
[0, 0], [0, 1], [0, 2]
]
Erwartete Ausgabe
[
[ 95 71 71],
[ 95 71 71],
[ 95 71 71],
]
In diesem Link gibt es zwei ähnliche Fragen: Eine ist die Python-Numpy-2D-Array-Summe über bestimmte Indizes und eine andere ist das Ermitteln der (x, y) -Indizes bestimmter (R, G, B) Farbwerte aus Bildern, die in NumPy-ndarrays gespeichert sind .
Es bekam eine, IndexError: too many indices for array
als ich Frage eins von versuchte img_rgb[tuple(indices)]
.
Antworten
Sie müssen nur transponieren indices
.
img_rgb[tuple(np.transpose(indices))]
np.tranpose()
würde funktionieren, selbst wenn indices
es sich nur um eine Liste handelt, da als Eingabe jede "Array-ähnliche" Struktur erwartet wird.