Ho un'immagine letta in numpy con parecchi pixel nella mia matrice risultante.C'è un modo conveniente per applicare una tabella di ricerca a un grande array in numpy?
Ho calcolato una tabella di ricerca con 256 valori. Ora voglio fare quanto segue:
for i in image.rows:
for j in image.cols:
mapped_image[i,j] = lut[image[i,j]]
Yep, che è fondamentalmente ciò che fa una LUT.
L'unico problema è: voglio farlo in modo efficiente e chiamare quel ciclo in python mi farà aspettare alcuni secondi perché finisca.
Conosco numpy.vectorize()
, è semplicemente una funzione di comodità che chiama lo stesso codice Python.
* face-desk * Questo è così semplice, potrei urlare. Ho pensato nell'altra direzione tutto il tempo e che non funzionerà. Ma naturalmente, numpy fa le cose in modo elementare, quindi questa è la soluzione più ovvia. Forse ero stanco ieri. ;) – Profpatsch
In realtà, sembra funzionare anche per LUTS multidimensionali, almeno con numpy 1.9.2 – Claude
Soluzione molto elegante, grazie! – gcucurull