[Dcmlib] Pb metaphysique gdcm
Mathieu Malaterre
Mathieu.Malaterre at creatis.insa-lyon.fr
Mon Oct 27 10:09:35 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?
>
vtk sait travailler avec les palettes. Est-ce qu'il serait possible que
tu m'envois une petite version patchée qui renvoie:
GetPixelData -> les pixels bruts (pas RGBisé)
GetPalette -> La palette brute
Il ne me restera plus qu'a trouver comment VTK veux les informations, et
le tour devrait etre joué
commentaires/suggestions bienvenus
/mat
More information about the Dcmlib
mailing list