[Dcmlib] MONOCHOMRE1 feature request...
Mathieu Malaterre
mathieu.malaterre at gmail.com
Tue Jul 3 13:29:11 CEST 2007
On 7/3/07, Jean-Pierre Roux <jpr at creatis.insa-lyon.fr> wrote:
> Mathieu Malaterre wrote:
> > Je savais bien que ca allait nous tomber dessus un jour ou l'autre:
> >
> > http://public.kitware.com/pipermail/insight-users/2007-July/022768.html
> >
> > Bon ben GDCM aura tenu qlq années sans ca.
> >
>
> Je devrais pouvoir ajouter de manière très simple deux méthodes:
> FileHelper::SetPhotometricInterpretationToMonochrome1() /
> FileHelper::SetPhotometricInterpretationToMonochrome2()
> (utilisables égalempent lors de la lecture, car je suppose qu'un jour,
> qq'un va nous dire : <<de quel droit gdcm change-t-il la valeur des Pixels?
> Dans mes images le blanc est codé 0 et le noir 65535, je *veux* les
> recupérer comme ça !>>
>
> Bon.
> Ca, c'est au niveau gdcm.
> On peut aisement rajouter l'accesseur VTK.
> En ce qui concerne ITK, l'utilsateur n'a aucun moyen d'entrevoir le
> gdcm::File, c'est ça?
C'est effectivement un probleme grave dans GDCM, c'est que la
decopression arrive *toujours* en MONOCHROME2. J'avais regarder a
l'epoque l'API de la lib PNG et c'etait bien mieux fais. En gros:
if (color_type == PNG_COLOR_TYPE_PALETTE)
{
png_set_palette_to_rgb(png_ptr);
}
// minimum of a byte per pixel
if (color_type == PNG_COLOR_TYPE_GRAY && bit_depth < 8)
{
png_set_gray_1_2_4_to_8(png_ptr);
}
// add alpha if any alpha found
if (png_get_valid(png_ptr, info_ptr, PNG_INFO_tRNS))
{
png_set_tRNS_to_alpha(png_ptr);
}
if (bit_depth > 8)
{
#ifndef VTK_WORDS_BIGENDIAN
png_set_swap(png_ptr);
#endif
}
Donc c'est vraiment a l'utilisateur si son app veux une image RGB, ou
une image PALETTE. Si il veut du RGB ou du RGBA... c'est vraiment bien
pensé.
Une autre lib que j'ai vu passer c'est boost::GIL ca s'est superbe, merci adobe.
Quoiqu'il en soit on peux pas casser gdcm 1.x comme ca. En interne
GDCM manipule du MONOCHROME2 decompressé, c'est son API (implicit).
Tout ce que l'on peut faire c'est ce que j'ai fais pour le JPEG. On
rajoute un mode MONOCHROME1. Mais dans tous les cas l'utilisateur doit
fournir une entree en MONOCHROME2 (VTK, ITK...).
-Mathieu
More information about the Dcmlib
mailing list