[Dcmlib] Lecture/Decompression des multiframes]

Jean-Pierre ROUX jean-pierre.roux at creatis.insa-lyon.fr
Tue Apr 26 08:48:28 CEST 2005


At 18:23 -0400 25/04/05, Mathieu Malaterre wrote:

[...]

>
>>La derniere version du diagramme de classes pour décrire l'entete 
>>ne me choque plus.
>>En revanche, la partie 'lecture/decompression' devra probablement 
>>etre entierement réécrite.
>>Vouloir lire *tout* le fichier d'un seul coup, c'est du pur délire !
>>Lorsqu'on aura des multiframes de 2 Giga Octets, comme ceux de 
>>Jean-Michel Rouet
>>(on en a deja, de plus petits, de 200 MegaOctets), il faudra bien 
>>qu'on fasse du frame by frame reading, pour permetre a 
>>l'utilisateur de de garder *lors de la lecture* que les frames dont 
>>il a besoin (et pas une fois que tout est lu ...).
>>Et la, ca va secouer ...
>
>
>Exact je n'y avais pas pense mais tu as parfaitement raison. Dans le 
>cas d'image de ce type il faut pouvoir faire qlq chose du genre:
>
>
>gdcm::File f(); //vide
>s.SetVolumeOfInterest(0,512,0,512,0,10);
>
>try
>   f.Read()
>catch
>   cerr << "Echec lors de la lecture"

C'est une des possibilités.
Ca suppose que tu as une connaissance a priori de ce qui t'interesse 
dans le multiframe.

On peux egalement penser a des methodes
GetFirstFrame(), GetNextFrame()
qui rendent la main a l'utilisateur.
Il pourra ainsi, par exemple, incrementer sa barre de progression, ou 
afficher le frame qui vient d'etre lu (important quand on a une 
lecture *vraiment* longue -et puis : pas de raison qu'on fasse moins 
bien que DicomWorks ...-),
ou alors, decider, au vu du contenu du frame courant, que ce frame ne 
l'interesse pas, et qu'il desalloue les pixels.

Mais ton idée, surement plus simple a realiser (on ne rend pas la 
main a l'utilisateur, qui risquerait d'oubler de terminer son 
processus de lecture, et laisserait le fichier ouvert) resoudrait le 
pb de la place mémoire en ne chargeant pas les frames non souhaités.

JPRx

>
>C'est vraiment important de faire le VRAI traitement en dehors de la 
>construction de l'image IMHO.

  Jean-Pierre ROUX
  UMR CNRS 5515-CREATIS
  Laboratoire de Radiologie Experimentale
  Hopital Cardiologique
  28 Avenue du Doyen LEPINE
  B.P. Lyon-Montchat
  69394 Lyon Cedex 03

  Tel      : (+33) 04 72 35 74 12
  Fax      : (+33) 04 72 68 49 16
  URL      : http://www.creatis.univ-lyon1.fr
  e-mail   : jpr at creatis.univ-lyon1.fr
								   




More information about the Dcmlib mailing list