[vtkusers] Up side down MPR's images

Mathieu Malaterre mathieu.malaterre at gmail.com
Tue Oct 6 09:58:52 EDT 2009


Look at the class gdcm::Orientation to compute the orientation of the
image from the IOP and IPP.

http://gdcm.sourceforge.net/html/classgdcm_1_1Orientation.html

Cheers


On Tue, Oct 6, 2009 at 12:38 PM, Fireman Fireman
<vtkusersneedhelp at yahoo.fr> wrote:
>
> Hi Mathieu,
>
> I don't use vtkGDCMImageReader.
>
> I'm loading Dicom image (data) into a vtkStructuredPoints as that :
>
>     vtkStructuredPoints *dtVtkStrctrdPnts;
>     dtVtkStrctrdPnts= vtkStructuredPoints::New();
>     dtVtkStrctrdPnts->SetDimensions(WdthVlm,HghtVlm,DpthVlm);
>     dtVtkStrctrdPnts->SetScalarType(VTK_SHORT);
>     dtVtkStrctrdPnts->AllocateScalars();
>     DstBffr=(signed short*) dtVtkStrctrdPnts->GetScalarPointer();
>     for (siCptDcm = 0 ; siCptDcm < n ; siCptDcm++)
>     {
>       ......
>
>       memcpy(DstBffr, DICOM->Pixmap, (DICOM->width * DICOM->height * DICOM->BtsAllctd/8));
>     }
> Is there  a way to detect when I need to load the volume in normal way or inverted (for example from ImagePositionPatient or ImageOrientationPatient)
>
> Thank's
> B.wassim
>
> --- En date de : Mar 6.10.09, Mathieu Malaterre <mathieu.malaterre at gmail.com> a écrit :
>
> De: Mathieu Malaterre <mathieu.malaterre at gmail.com>
> Objet: Re: [vtkusers] Up side down MPR's images
> À: "Fireman Fireman" <vtkusersneedhelp at yahoo.fr>
> Cc: vtkusers at vtk.org
> Date: Mardi 6 Octobre 2009, 9h36
>
> On Tue, Oct 6, 2009 at 10:30 AM, Fireman Fireman
> <vtkusersneedhelp at yahoo.fr> wrote:
> >
> > Dear vtkusers and developers,
> >
> > I'm using VTK for Multi-Planar Reformation (MPR).
> >
> > I'm loading Dicom image (data) into a vtkStructuredPoints (Image1,Image2,Image3,...ImageN)
> >
> > It works well with some series of images but not always.
> >
> > In fact, sometimes the images are inverted(up side down == rotation 180°).
> >
> > I could solve this problem by reversing the loading(ImageN,ImageN-1,...Image1)
> >
> > I have not found a way to detect when I need to load the volume in normal way or inverted.
> >
> > For now I use a comparison between SliceLocation that does not work in all cases:
> >
> >             if(SliceLocation_ImageN > SliceLocation_ImageN-1)
> >                            I reverse the loading(ImageN,ImageN-1,...Image1)
> >            else
> >                          (Image1,Image2,Image3,...ImageN)
>
>
> If you use vtkGDCMImageReader, simply get the Direction Cosines
> (vtkMatrix4x4). See for example use in Devide:
>
> http://code.google.com/p/devide/source/browse/trunk/devide/modules/readers/DICOMReader.py
>
> HTH
> --
> Mathieu
>



--
Mathieu



More information about the vtkusers mailing list