[Dcmlib] Pb metaphysique gdcm

Mathieu Malaterre Mathieu.Malaterre at creatis.insa-lyon.fr
Mon Oct 27 10:53:24 CET 2003


Jean-Pierre ROUX wrote:
> Bonjour.
> 
> --> Actuellement, le constructeur de gdcmHeader renvoie .. un 
> gdcmHeader, c'est à dire le contenu de ce qu'il a trouvé sur disque 
> concernant les champs du Header, et GetPixelData renvoie les Pixels, 
> présentés de telle sorte que l'utilisateur n'ai pas à se soucier de la 
> manière dont ils étaient écrits sur disque.
> Facile.
> Ainsi, les pixels, qu'ils aient été big Endian ou little endian sur 
> disque, sont renvoyés dans un ordre compatible avec celui du processeur, 
> que la 'Planar Configuration' ait indique que le 'RGB' est codé au 
> niveau du Pixel (RGBRGBRGBRGB ...) ou au niveau du Plan (RRRRR.... 
> GGGGG.... BBBBB.....), on renvoie RGBRGBRGB..., ce qui permet à vtk 
> d'afficher sans se poser pb.
> Jusque la, tout va bien.
> 
> Lorsqu'il y a une ou des 'Palettes LUT', GetPixelData 'fabrique' une 
> 'image RGB', de telle sorte que vtk, etc, et met à jour dans le Header 
> les info qui 'décrivent' une image RGB, afin que les programmes qui 
> interrogent le Header trouvent une info cohérente.
> Et c'est là que ça se gâte ...
> Si un programme a accédé à un ensemble d'images, conservé en mémoire les 
> Headers des images sur lesquelles il souhaite travailler, puis appelle 
> GetPixelData, il aura des info incohérentes dans 'ses' Headers lorsqu'il 
> voudra exploiter les Pixels :-(
> 
> La solution qui consisterait à 'mettre à jour' le Header dès qu'il est 
> lu n'est pas à retenir, car GetPixelData ne disposerait plus des 
> 'bonnes' info pour mettre les Pixels en forme.
> 
> Doit-on faire des accesseurs -aux noms clairement identifiables- qui 
> renverraient, non pas la valeur contenue dans le Header, mais la valeur 
> qui *sera* utilisable lorsque GetPixelData aura réorganisé les Pixels?
> 
> Dans cette hypothèse -qui me parait satisfaisante-, doit-on faire une 
> classe pour ces trucs-là?
> Les mettre dans la classe gdcmHeaderHelper qu'a fait Mathieu Malaterre?

Houla, mais je me rends compte qu'il y a deja un:

gdcmHeader::GetLUTRGB()

est-ce qu'elle est valide ? Sur quelle image il y a un probleme ?

/mat




More information about the Dcmlib mailing list