Je lis une image de mammographie ddsm. Et après avoir normalisé le traçage. C'est l'image en niveaux de gris mais je la traite comme RVB, en copiant le même canal 3 fois. Le problème est quand j'utilise pyplot
de matplotlib
l'image normalisée est saturé alors que quand je conspire en utilisant scipy.misc
toimage
, il nematplotlib en ligne pyplot saturé tandis que scipy.misc toimage n'est pas
Voici mon code:
from scipy import misc
%matplotlib inline
import matplotlib
import numpy as np
import matplotlib.pyplot as plt
img = misc.imread('testcolor.png')
print(type(img)) #<type 'numpy.ndarray'>
img.shape #(512,512,3)
Les valeurs de pixel d'image sont comme ça
print(img[:,:,1])
#[[ 98 97 99 ..., 0 0 0]
[ 98 98 100 ..., 0 0 0]
[100 100 100 ..., 0 0 0]
...,
[ 91 95 96 ..., 0 0 0]
[ 88 89 92 ..., 0 0 0]
[ 95 94 97 ..., 0 0 0]]
Je normalisé l'image avec le code suivant:
imgn = np.where(img>0,img,np.nan)
img_norm = (img - np.nanmean(imgn,axis=(0,1)))/np.nanstd(imgn,axis=(0,1))
Comme précédemment pixels normalisés sont comme
print(img_norm[:,:,1])
#[[-0.71566175 -0.74025369 -0.69106981 ..., -3.1256717 -3.1256717
-3.1256717 ]....
également
print(np.min(img_norm)) #-3.12567170176
print(np.max(img_norm))#2.80098542174
Avec pyplot de matplotlib Je reçois ceci:
plt.figure()
plt.imshow(img_norm)
plt.show()
Je tracer le même norma l'image lisé avec toimage
de scipy.misc
from scipy.misc import toimage
toimage(img_norm).show()
Pourquoi j'ai cet écart?
BTW, l'image originale unormalized est la suivante:
N'êtes-vous pas censé utiliser 'uint8' pour montrer l'image? De plus, qu'en est-il des nombres négatifs dans 'img_norm'? – Divakar