2015-09-18 10 views
6

Ho una matrice numpy 2D e vorrei generare un'immagine in modo che i pixel corrispondenti ai numeri che hanno un valore elevato (rispetto ad altri pixel) siano colorati con un colore più intenso. Ad esempio, se l'immagine è in scala di grigi e un pixel ha valore 0.4849 mentre tutti gli altri pixel corrispondono a valori inferiori a 0.001, allora quel pixel sarebbe probabilmente colorato di nero o qualcosa di simile al nero.Dato un array numerico 2D di numeri reali, come generare un'immagine che descrive l'intensità di ciascun numero?

Ecco un'immagine di esempio, l'array è 28x28 e contiene valori compresi tra 0 e 1.

Tutto quello che ho fatto per tracciare questa immagine è stato eseguito il seguente codice:

import matplotlib.pyplot as plt 
im = plt.imshow(myArray, cmap='gray') 
plt.show() 

enter image description here

Tuttavia, per qualche motivo questo funziona solo se i valori sono compresi tra 0 e 1. Se sono su un'altra scala che può includere numeri negativi, l'immagine non ha molto senso.

risposta

2

È possibile utilizzare diverse mappe di colori troppo, come nell'esempio che segue (notare che ho rimosso l'interpolazione):

happy_array = np.random.randn(28, 28) 
im = plt.imshow(happy_array, cmap='seismic', interpolation='none') 
cbar = plt.colorbar(im) 
plt.show() 

enter image description here

E anche grigio è goin g al lavoro:

happy_array = np.random.randn(28, 28) 
im = plt.imshow(happy_array, cmap='gray', interpolation='none') 
cbar = plt.colorbar(im) 
plt.show() 

enter image description here

1

È possibile normalizzare i dati alla gamma (0,1) dividendo tutto con il valore massimo della matrice:

normalized = array/np.amax(a) 
plt.imshow(normalized) 

Se l'array contiene valori negativi si hanno due scelte logiche. O tracciare la grandezza:

mag = np.fabs(array) 
normalized = mag/np.amax(mag) 
plt.imshow(normalized) 

o spostare la matrice in modo che tutto ciò che è positivo:

positive = array + np.amin(array) 
normalized = positive/np.amax(positive) 
plt.imshow(normalized) 
Problemi correlati