Come ottenere tutti i pixel da determinati indici da un array di immagini
La forma dell'array di immagini è (540, 960, 3)
, e in questo modo:
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]]]
E voglio ottenere elementi indices
che indichino l'indice di ogni elemento e indices
simili:
indices = [
[0, 0], [0, 1], [0, 2]
]
Uscita prevista
[
[ 95 71 71],
[ 95 71 71],
[ 95 71 71],
]
Ci sono due domande simili in questi link, una è la somma di array 2D numpy Python su determinati indici e un'altra è Trovare gli indici (x, y) di valori di colore specifici (R, G, B) da immagini memorizzate in NumPy ndarrays .
Ha ottenuto una IndexError: too many indices for array
domanda quando ho provato una di img_rgb[tuple(indices)]
.
Risposte
fountainhead
Hai solo bisogno di trasporre indices
.
img_rgb[tuple(np.transpose(indices))]
np.tranpose()
funzionerebbe anche se indices
fosse solo un elenco, poiché si aspetta come input una struttura "simile ad array".