[Dcmlib] [nasty DICOM images]

Benoit Regrain benoit.regrain at creatis.insa-lyon.fr
Mon Oct 6 16:48:22 CEST 2003


----- Original Message ----- 
From: "Jean-Pierre Roux" <Jean-Pierre.Roux at creatis.insa-lyon.fr>
To: <Eric.Boix at creatis.insa-lyon.fr>
Cc: <dcmlib at tux.creatis.insa-lyon.fr>
Sent: Monday, October 06, 2003 4:24 PM
Subject: [Dcmlib] [nasty DICOM images]


> > Yo,
> >
> > Quoting Mathieu Malaterre <Mathieu.Malaterre at creatis.insa-lyon.fr>:
> >> - Est-ce que l'on ralentit le parsing en effectuant des tests de
> >> parité. Et des que l'on croise 13 on remplace par 10.
> >>
>
> Les champs DICOM ont l'air d'être tous de longueur paire (je n'ai pas
> retrouve l'endroit ou c'est ecrit, mais il semble l'avoir lu .)
> Le problème ne vient pas de 'pair/non pair', mais de bugs -connus- dans
> les entetes. l'exemple '13 au lieu de 10' en est un, sur ceratines images
> GE
>
> Il y a deux approches :
> -->Ou bien, on la joue 'e-film', et tout ce qui ne respecte pas
> scrupuleusement* la norme, on le jette .
> -->Ou bien on la joue 'Sebastien Barré/Dicom Works/XMedCon' et les autres,
> et on fait en sorte que les images soient lues.
>
> J'aurais tendance à dire 'on se debrouille pour tout lire'.
> Exemple : les images IRM Philips *actuelles* font casser la JpegLib IJG6b.
> Une table qui ne devrait contenir *QUE* des valeurs inferieures à 15, en
> contient une qui vaut 16. Si je la force à 15, ça marche.
> Doit-on imaginer des solutions halucinantes qui feront chier tout le
> monde, ou bien remplacer le test
> if (h[i] > 15) exit;
>  par
> if (h[i] > 15) h[i]=15;
>
> Ca ne rajoute *vraiment pas beaucoup* d'overhead, et ca simplifie la vie
> de tout le monde.
> Imaginez l'utilisateur de 'Maracas', obligé de réfléchir pour savoir sur
> quelle machine a été fait l'exam qu'il va traiter, et passer des flags à
> son executable avant de le lancer ...

Je pense qu'il y a une différence entre gérer l'erreur pour une valeur hors
limites
et remplacer une valeur par une autre parce que cela nous arrange pour lire
l'image.
Je pense donc qu'on devrait s'en tenir à un programme annexe qui modifie
l'image incorrecte,
et peut-etre aussi créer une lib dynamique contenant ces heuristiques de
modification, pour
pouvoir les appeler depuis un autre programme si besoin est...

Benoit




More information about the Dcmlib mailing list