[Dcmlib] Pb qualité image via ITK...

Fabrice BERGER f.berger at topsolid.com
Fri Apr 8 13:05:07 CEST 2005


Bonjour,

J’utilise depuis peu et pour un besoin ponctuel ITK, et par son
intermédiaire GDCM.
Je ne suis pas du tout spécialiste en images DICOM (j’apprends sur le tas,
en l’occurrence
)

Je cherche à afficher une image DICOM dans un produit de CAO. J’ai donc
besoin de reprendre les pixels avec les bonnes valeurs.
Mes images de tests sont codées comme ça (merci ezDicom !!) :
0028,0000,Image Presentation Group Length=180
0028,0002,Samples Per Pixel=1
0028,0004,Photometric Interpretation=MONOCHROME2
0028,0010,Rows=512
0028,0011,Columns=512
0028,0030,Pixel Spacing=0.390625 0.390625 
0028,0100,Bits Allocated=16
0028,0101,Bits Stored=12
0028,0102,High Bit=11
0028,0103,Pixel Representation=0
0028,1050,Window Center=00700 00700 
0028,1051,Window Width=02700 02700 
0028,1052,Rescale Intercept=-1000 
0028,1053,Rescale Slope=1 

J’ai pu constater dans plusieurs viewer DICOM (ezDicom et DICOMscope
notamment) que l’image est bonne (en tout cas, ils l’affichent avec des gris
bien choisis, sans intervention de l’utilisateur)

Sachant que je déclare les types suivants :
typedef itk::Image<PixelType, 2 > ImageType;
typedef itk::ImageFileReader<ImageType> ReaderType;

Si je déclare un PixelType de type unsigned char, la conversion semble
catastrophique, les niveaux de gris ne correspondent à rien : on dirait
qu’il fait un modulo 256 sur la valeur en unsigned short.
Si je déclare un PixelType de type unsigned short, c’est mieux, mais la
plage n’est pas bonne (j’utilise environ 2000 valeurs de gris sur les 65535
dispos, autant dire rien).
Dans ce dernier cas, j’ai constaté que la fonction RescaleFunction() dans
itkGDCMImageIO.cxx avait un comportement bizarre. En effet, j’ai un slope à
1.0 (ça me semble ok) et Intercept = -1000.0 (c’est courant des valeurs
négatives ?), et la valeur de mes pixels avant rescale, et en unsigned
short, oscille entre 0 et 3000
 Bref, le resampling en vient souvent à
convertir un nombre négatif en en unsigned short
 et je me retrouve avec du
quasi noir et du quasi blanc à l’affichage. Visuellement, on ne voit que du
noir ou du blanc, même en zoomant sur l’image.

Je suppose que j’ai mal fait quelque chose, mais je ne voit pas quoi...

Si quelqu'un a une idée qui me permette de progresser, je le remercie par
avance.

Fabrice Berger





More information about the Dcmlib mailing list