[Dcmlib] Big Endian suite
Mathieu Malaterre
mathieu.malaterre at kitware.com
Tue Jan 11 22:32:35 CET 2005
Mathieu Malaterre wrote:
> Ok la test suite gdcm passe bien car on lie et reecrie que via gdcm...
> ca permet juste de verifier qu'on est consistant.
>
> Par ex l'image:
>
> gdcmData/012345.002.050.dcm
>
> n'est pas lu correctement l'endianness est fausse (inverse).
Le morceau de code coupable c'est:
if( BitsAllocated == 16 )
{
uint16_t *im16 = (uint16_t*)Raw;
switch( SwapCode )
{
case 0:
case 12:
case 1234:
break;
case 21:
case 3412:
case 2143:
case 4321:
for( i = 0; i < RawSize / 2; i++ )
{
im16[i]= (im16[i] >> 8) | (im16[i] << 8 );
}
break;
default:
gdcmVerboseMacro("SwapCode value (16 bits) not allowed.");
}
}
Je comprends a ce machin. C'est quoi '12' , c'est quoi 21 ?
En tout cas pour l'image 012345.002.050.dcm, gdcm me renvoi que le
SwapCode est 4321, mais lors de la conversion de l'image j'ai du
commenter le swap des pixels...
Quelqu'un pour m'expliquer ?
Merci
Mathieu
More information about the Dcmlib
mailing list