[vtkusers] Image Orientation computation

sercani sercanimailgroups at gmail.com
Thu May 6 03:55:12 EDT 2010


06.05.2010 10:33, ABHISHEK GUPTA yazmış:
> Hi sercani,
> I am new to VTK and not using VTKImageViewer2.
> I am using classes VTKImageData, VTKImageTransform and VTKImageReslice.
> Any idea how can i do it using above classes.
> Thanks
> Abhishek
> Any idea how to
>
> On Thu, May 6, 2010 at 12:13 PM, sercani <sercanimailgroups at gmail.com 
> <mailto:sercanimailgroups at gmail.com>> wrote:
>
>     06.05.2010 08:12, Abhishek_Gupta yazmış:
>
>         Am implementing the MPR functionality using VTK libraries and
>         bit confused
>         how to calculate the patient orientations in the sagital and
>         coronal view
>         when the DICOM image was in Axial view. I was able to display the
>         orientations from the DICOM file using the formulas provided
>         in the
>         http://www.dclunie.com/medical-image-faq/html/part2.html site
>         by Mr. Clunie.
>         Using this i get the orientation of the image of that
>         particular DICOM image
>         but how should i calculate the orientations for the other
>         views except the
>         one present in the DICOM file when reconstructed using the VTK.
>
>     Hi Abhistek;
>     If you are using vtkImageViewer2 for MPR rendering you can find
>     their orientations like this:
>
>     First find all axial (XY plane) orientations for left, top, right
>     , bottom, front and back sides of vtkImageViewer2 and insert them
>     into an array or stringlist etc. and do these calculations for
>     other views:
>
>     enum tagSCREEN
>     {
>     LEFT=0,
>     TOP,
>     RIGHT,
>     BOTTOM,
>     FRONT,
>     BACK
>     }ESCREEN;
>
>     //Sagittal
>     StringList getOrientationAnnotationForYZPlane()
>     {
>     StringList xy=getOrientationAnnotationForXYPlane();//axial
>     orientations
>
>     StringList list;
>     list.insert(LEFT,xy.at <http://xy.at/>(TOP));
>     list.insert(TOP,xy.at <http://xy.at/>(BACK));
>     list.insert(RIGHT,xy.at <http://xy.at/>(BOTTOM));
>     list.insert(BOTTOM,xy.at <http://xy.at/>(FRONT));
>     list.insert(FRONT,xy.at <http://xy.at/>(LEFT));
>     list.insert(BACK,xy.at <http://xy.at/>(RIGHT));
>     return list;
>     }
>     //Coronal
>     StringList getOrientationAnnotationForXZPlane()
>     {
>     StringList xy=getOrientationAnnotationForXYPlane();//axial
>     orientations
>
>     StringList list;
>     list.insert(LEFT,xy.at <http://xy.at/>(LEFT));
>     list.insert(TOP,xy.at <http://xy.at/>(BACK));
>     list.insert(RIGHT,xy.at <http://xy.at/>(RIGHT));
>     list.insert(BOTTOM,xy.at <http://xy.at/>(FRONT));
>     list.insert(FRONT,xy.at <http://xy.at/>(TOP));
>     list.insert(BACK,xy.at <http://xy.at/>(BOTTOM));
>     return list;
>     }
>
>     Sercani....
>
>
Just create an instance of vtkImageViewer2 and set its renderwindow and 
interactors, then set the viewer->SetSliceOrientation(int orientation); 
according to your mpr rendering...for axial rendering orientation should 
be 2, sagittal=0, coronal =1;

But of course if you have already implement the mpr rendering using 
vtkImageTransform and vtkImageReslice you can set the stringlists 
according to your transforms...The ones that i send are for 
vtkImageViewer2's transforms, you can just control the values if they 
are true, if not you can modify them for your transforms.The ones that i 
send were only examples for giving the logic of orientation...
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.vtk.org/pipermail/vtkusers/attachments/20100506/df909b23/attachment.htm>


More information about the vtkusers mailing list