[Insight-users] Nifti vs Dicom orientation
Mathieu Coursolle
mcoursolle at rogue-research.com
Mon Apr 6 12:33:38 EDT 2009
Hi,
Thanks for your clarifications.
However, I must admit that I am still a bit confused.
Since NIfTI and ITK have different Left/Right and Anterior/Posterior
directions,
I admit that the direction matrix needs to be modified.
Since my image dimension is 181 x 217 x 181, a flip in X means that to
change
the direction, the new origin is -90 + (181 - 1) = 90.
A flip in Y however means that the new origin should be -126 + (217 -
1) = 90.
Should I then expect instead a GetDirection() and GetOrigin() result
of:
[-1, 0, 0, 90]
[0, -1, 0, 90]
[0, 0, 1, -72]
[0, 0, 0, 1]
Just inverting the sign of the origin would then mean that the world
coordinates
are centered on (0, 0, 0)mm, which is not the always the case.
Am I right ?
Thanks!
Mathieu
On 6-Apr-09, at 12:13 PM, Luke Bloy wrote:
> Hi all,
>
> So this is my understanding of how orientations and ITK work.
>
> the GetDirection and GetOrigin methods in itk::Image return the
> directional cosines in an LPS world frame. Thus an identity matrix
> returned by GetDirection() would mean the image is stored in LPS.
>
> The QForm and SForm matrices in the nifti file format are in the
> RAS world coordinate frame. See http://nifti.nimh.nih.gov/nifti-1/documentation/nifti1fields/nifti1fields_pages/qsform.html
>
> So Mathieu, what you are reporting is the expected behavior.
> qform (shown by fslhd etc) of
> [1, 0, 0, -90]
> [0, 1, 0, -126]
> [0, 0, 1, -72]
> [0, 0, 0, 1]
>
> should yield a GetDirection() and GetOrigin of
> -1 0 0 90
> 0 -1 0 126
> 0 0 1 -72
> 0 0 0 1
>
>
> Antoine,
> Your situation is more confusing, I'm not familiar with dcm2nii, but
> it isn't unheard of to have dicom converters change the orientation
> of the output image, to bring it into some consistent frame (LAS is
> a favorite of labs that have lots of old code expecting analyze
> files). From what you posted it seems that dcm2nii converted your
> image from an LPS arranged dicom to an LAS arranged Nifti file. I
> would investigate the nifti file's qform and sform matrics using
> either nifti_tool, fslhd or pynifti to confirm this.
>
> Hope this helps,
> Luke
>
> Mathieu Coursolle wrote:
>>
>> Hi,
>>
>> I am having a similar issue, which may be related.
>>
>> I have a NIfTI file, which I load using itkNIfTIImageIO.
>>
>> By stepping into ITK, I can see that the s-form (sto_xyz) is:
>>
>> [1, 0, 0, -90]
>> [0, 1, 0, -126]
>> [0, 0, 1, -72]
>> [0, 0, 0, 1]
>>
>> However, when it read the origin and orientation of the resulting
>> itkImage,
>> I get:
>>
>> [-1, 0, 0, 90]
>> [0, -1, 0, 126]
>> [0, 0, 1, -72]
>> [0, 0, 0, 1]
>>
>> This data is in the MNI-152 space. I know that the index (0, 0, 0)
>> should be
>> (-90, -126, -72) mm in LPI coordinate system (NIfTI's default I
>> believe).
>>
>> Since I want my data in the RAI coordinate system, I then use the
>> itkOrientImageFilter.
>> Assuming it converts the image from LPI to RAI, I would expect the
>> ouput to be:
>> [-1, 0, 0, 90]
>> [0, -1, 0, 90]
>> [0, 0, 1, -72]
>> [0, 0, 0, 1]
>>
>> But I get:
>> [1, 0, 0, -90]
>> [0, 1, 0, -90]
>> [0, 0, 1, -72]
>> [0, 0, 0, 1]
>>
>> By the way, my image dimensions are 181 x 217 x 181.
>>
>> I know that index (0, 0, 0) is (90, 90, -72) mm in RAI.
>>
>> I am right that the matrix I get from ITK is not what is expected ?
>>
>> It looks to me that the itkNIfTIImageIO is doing some transform to
>> the orientation matrix.
>>
>> What would be that transformation's purpose ?
>>
>> Thanks a lot!
>>
>> Mathieu
>>
>> ____________________
>> Mathieu Coursolle, M.Ing.
>> Rogue Research Inc.
>> www.rogue-research.com
>>
>>
>> On 6-Apr-09, at 10:46 AM, Antoine DUCHAMPS wrote:
>>
>>> Hi all,
>>>
>>> I have a DWI sequence (brain) acquired with a Siemens scanner in
>>> Dicom
>>> format. After converting it to NIfTI with dcm2nii
>>> (http://www.sph.sc.edu/comd/rorden/mricron/dcm2nii.html) I tried
>>> to read
>>> it an recover the orientation by using ITK (I've copied the code
>>> below).
>>> The matrix I obtain is the following:
>>>
>>> 0.9997 0.0000 0.0252
>>> 0.0002 -1.0000 -0.0072
>>> -0.0252 -0.0072 0.9997
>>>
>>> However, the transforation matrix in the Dicom header is
>>>
>>> 0.9997 0.0000 0.0252
>>> 0.0002 1.0000 -0.0072
>>> -0.0252 0.0072 0.9997
>>>
>>> If the Dicom image orientation is LPS, this means that the image
>>> orientation in NIfTI is LAS (And not RAS as I believed). Could
>>> anybody
>>> clarify this please? Are there several possible orientations in
>>> NIfTI?
>>> If so, how can I know the specific image orientation?
>>>
>>> Antoine.
>>>
>>>
>>> #include "itkImageFileReader.h"
>>> #include "itkOrientedImage.h"
>>>
>>> const unsigned int Dimension = 4;
>>> typedef short PixelType;
>>> typedef itk::OrientedImage<PixelType, Dimension> ImageType;
>>> typedef ImageType::Pointer ImagePointerType;
>>> typedef itk::ImageFileReader< ImageType > ReaderType;
>>>
>>>
>>> int main(int argc, char* argv[])
>>> {
>>>
>>> ImageType::Pointer image = ImageType::New();
>>>
>>> ReaderType::Pointer reader = ReaderType::New();
>>> reader->SetFileName(argv[1]);
>>> reader->Update();
>>>
>>> image = reader -> GetOutput();
>>> std::cout << image->GetDirection() << std::endl; std::cout.flush();
>>>
>>> }
>>>
>>> _____________________________________
>>> Powered by www.kitware.com
>>>
>>> Visit other Kitware open-source projects at
>>> http://www.kitware.com/opensource/opensource.html
>>>
>>> Please keep messages on-topic and check the ITK FAQ at: http://www.itk.org/Wiki/ITK_FAQ
>>>
>>> Follow this link to subscribe/unsubscribe:
>>> http://www.itk.org/mailman/listinfo/insight-users
>>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>> _____________________________________
>> Powered by www.kitware.com
>>
>> Visit other Kitware open-source projects at
>> http://www.kitware.com/opensource/opensource.html
>>
>> Please keep messages on-topic and check the ITK FAQ at: http://www.itk.org/Wiki/ITK_FAQ
>>
>> Follow this link to subscribe/unsubscribe:
>> http://www.itk.org/mailman/listinfo/insight-users
>>
____________________
Mathieu Coursolle, M.Ing.
Rogue Research Inc.
www.rogue-research.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.itk.org/pipermail/insight-users/attachments/20090406/008af1cb/attachment-0001.htm>
More information about the Insight-users
mailing list