Avec différents types de visualisation selon les paramètres lors de l'appel de la méthode imshow()
#Init figure
f1 = plt.figure()
f1.add_subplot()
#Show raw image - Parameters dataset-image & colorMap
plt.imshow(image_data, cmap='gray')
plt.show()
Caracéristiques de l'image
Pour afficher des informations concernant les caractéristiques de la prise de vue, cette dernière librairie peut être associée à la librairie numpy. Cela permet ainsi d'afficher les valeurs statistiques (min, max, moy, écart-type) en complément de l'histogramme de l'image.
Attention, il s'agit ici d'une image en 32 bit à virgule flottante (float). Les valeurs seront bien entendu différentes en travaillant avec une image en 16 bit (int).
print('----- Statistics values -----')
print('Min :', np.min(image_data))
print('Max :', np.max(image_data))
print('Mean :', np.mean(image_data))
print('Stdev :', np.std(image_data))
print('Data Type :', image_data.dtype) #i.e. <f4 = little-endian single-precision floating point 32 bit
#(More detail about stype at https://numpy.org/doc/stable/reference/arrays.dtypes.html)
print('Image length : ', len(image_data)) # size list
print('Shape :', image_data.shape) # dimensions of the array
np.seterr(divide='ignore') #suppress the warnings raised by taking log10 of data with zeros
#New figure
f2 = plt.figure()
#Prepare Histogram
#Because image is a 2D Tab, need to convert in 1-D for plotting
#Use flatten () method on an array return 1-D numpy tab.
plt.hist(np.log10(image_data.flatten()), range=(-3, 2), bins=1000);
#Show Histogram
plt.show()
On pourra ainsi modifier l'affichage de notre image en fonction des zones de l'histogramme qui nous intéressent le plus (i.e -0.2 / 0.2), car leurs visualisation est facilité.
f3 = plt.figure()
img = plt.imshow(image_data)
img.set_clim(-0.1,0.3)
plt.colorbar()
Mais également utiliser différents types de colorations (cmap) et une échelle logarithmique avec numpy ( np.log(dataset-image) ).
#hide warnings
import warnings
warnings.filterwarnings("ignore", category=UserWarning)
from matplotlib.colors import LogNorm
f4 = plt.figure()
f4.suptitle('gam Cas with different visualisation type')
f4.add_subplot(2,2, 1)
plt.imshow(np.log10(image_data), cmap='plasma', vmin=-3, vmax=0, origin='lower')
plt.colorbar()
f4.add_subplot(2,2, 2)
plt.imshow(np.log10(image_data), cmap='viridis', vmin=-3, vmax=0, origin='lower')
plt.colorbar()
f4.add_subplot(2,2,3)
plt.imshow(np.log10(image_data), cmap='hot', vmin=-3, vmax=0, origin='lower')
plt.colorbar()
f4.add_subplot(2,2, 4)
plt.imshow(np.log10(image_data), cmap='nipy_spectral', vmin=-3, vmax=0, origin='lower')
plt.colorbar()
plt.show(block=True)
#More params at https://matplotlib.org/3.1.1/tutorials/colors/colormapnorms.html