[Dcmlib] Re: Images axial acquisition order

Luca Picello luca.picello at libero.it
Mon Jul 18 12:01:11 CEST 2005


Hello everybody,
JP, I agree with:
 >We considered it was up to the user to decide *where* he must place 
the camera, in VTK, for instance.

but it makes sense only for 2D images.
When you render a volume it becomes a real problem because you can't 
just "rotate the camera" ;-)
The volume is created wrong.

Here in attachment a possible source to resolve the problem. It can be 
useful and I believe it can be easily implemented in vtkgdcmreader 
somewhere...
I'll try to include it later... stay tuned ;-)

Luca



Jean-Pierre ROUX wrote:

> At 9:14 +0200 17/07/05, Luca Picello wrote:
>
>> It's wonderful JP. I'd really like to help you more on writing the 
>> sources but I may need some more docs.
>> About my latest problem here a screenshort where you can understand 
>> it well.
>> Here I rendered the volume with VTK but as you can see the X axis for 
>> this patient is swapped left with right.
>>
>> Information from one slice:
>>
>> Patient Position        : HFS.
>> Patient Orientation        : L\P.
>
>
> OK, I see the pb.
> It probabely comes from the 'orientation convention' in Dicom.
> If you 'cut a slice' (i.e; make an image) out of the patient, lying on 
> his back,
> the result will look different whether you're standing near the 
> patient's feet, or near the patient's head.
>
> We never toke this information into account in gdcm, till now.
> (Too many troubles with reading 'exotic' images ...)
> We considered it was up to the user to decide *where* he must place 
> the camera, in VTK, for instance.
>
> I think we should add a method to gdcm::SerieHelper to allow user to 
> tell whether he wants gdcm to take 'position' and 'orientation' into 
> account (that will cause some overhead), or if he wants to keep the 
> images as there are.
>
> I guess there are some heuristics to 'discover', before writting the 
> code.
> I'm going to ask to our friends from THERALYS, I'm almost sure they 
> *had* to do the job, maybe in C++, or in Python.
>
> ==> Emmanuel, are you on holydays ?
> Or still reading the mails?
>
> JPRx
>
>>
>> If you need it for testing pourposes, let me know.
>> Thanks,
>>
>> Luca
>>
>>
>>
>> Jean-Pierre ROUX wrote:
>>
>>> At 13:58 +0200 16/07/05, Luca Picello wrote:
>>>
>>>>
>>>> Hello everybody again,
>>>> I wonder if with vtkGdcmReader I can read images with correct axial 
>>>> acquisition order.
>>>> I observe I have right swapped with left in my image datas...
>>>> it's really nasty and I feel it's similar to yesterday's reported 
>>>> issue
>>>> we do need absolutely SerieHelper in vtkGdcmReader asap :-(
>>>
>>>
>>>
>>> Hi, everybody.
>>>
>>> I just finished testing a new feature for vtkGdcmReader.
>>>
>>>>
>>>
>>> We can now :
>>>
>>> gdcmSerieHelper *sh = new gdcmSerieHelper();
>>> sh->SetDirectory(myImageDirectory, true);
>>> gdcmFileList *l = s->GetFirstCoherentFileList();
>>> s->OrderFileList(l);
>>>
>>> vtkGdcmReader *gr = new vtkGdcmReader();
>>> gr->SetCoherentFileList(l);
>>>
>>> This works with a directory that contains only one 'Serie' (same 
>>> Serie UID for all the images).
>>> If it contains more than one serie, you'll have to loop on the 
>>> Series, using
>>> GetNextCoherentFileList();
>>>
>>> (That's why gdcm::SerieHelper is used outside of vtkGdcmReader, not 
>>> inside)
>>>
>>> PS :
>>> OrderFileList orders the images :
>>> - on the 'Image Position Patient'
>>> if it's not found or if there are more than one image at the same 
>>> position,
>>> - on Image Number
>>> if image numbers are not coherent,
>>> - on the file names :-(
>>> We can easyly add more sorting conditions.
>>>
>>> I'll commit it soon.
>>>
>>> I don't understand the pb with write/left swapping in images ?
>>>
>>> Jean-Pierre
>>>
>>>
>>>>
>>>> luca
>>>>
>>>>
>>>>
>>>> _______________________________________________
>>>> Dcmlib mailing list
>>>> Dcmlib at creatis.insa-lyon.fr
>>>> http://www.creatis.insa-lyon.fr/mailman/listinfo/dcmlib
>>>
>>>
>>>
>>> Jean-Pierre ROUX
>>> CREATIS - CNRS UMR 5515, INSERM U 630
>>> 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
>>>                                  .
>>>
>>
>>
>> Attachment converted: HD 9.2:swapped-volume.JPG (JPEG/JVWR) (00018A6E)
>
>
>   Jean-Pierre ROUX
>   CREATIS - CNRS UMR 5515, INSERM U 630
>   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
>                                    .
>

-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: SliceOrder.cpp
URL: <http://www.creatis.insa-lyon.fr/pipermail/dcmlib/attachments/20050718/62df5090/attachment.ksh>


More information about the Dcmlib mailing list