[ITK-users] DICOM Dataset GetOrigin
Filippo Brogi
filippo.brogi at topic.nl
Mon May 1 10:52:26 EDT 2017
Hello guys,
I'm reading a dicom dataset formed by 17 MR images using ITK 4.9.1.
According to the documentation "Origin" is the physical position of the
pixel whose "Index" is all zeros, but the GetOrigin() method is returning
the physical position of index = {0, 0, 16}.
Here a simplified code snippet
SeriesReaderType::Pointer reader = SeriesReaderType::New();
ImageIOType::Pointer dicomIO = ImageIOType::New();
reader->SetImageIO( dicomIO );
// mFilenames contains the list of dicom files
reader->SetFileNames ( mFileNames );
try
{
reader->Update();
auto pImage = reader->GetOutput();
ShortImageType3D::PointType point1;
ShortImageType3D::IndexType index1 = {0, 0, 0};
pImage->TransformIndexToPhysicalPoint( index1, point1 );
double imgPos[3];
imgPos[0] = dicomIO->GetOrigin(0);
imgPos[1] = dicomIO->GetOrigin(1);
imgPos[2] = dicomIO->GetOrigin(2);
ShortImageType3D::IndexType indexOfOrigin;
ShortImageType3D::PointType point2;
point2[0] = imgPos[0];
point2[1] = imgPos[1];
point2[2] = imgPos[2];
pImage->TransformPhysicalPointToIndex(point2,
indexOfOrigin);
}
catch(itk::ExceptionObject &)
{
std::cout << "ERROR" << std::endl;
return res;
}
This is the console output:
GetOrigin (-172.9, -116.666, 55.594)
[-99.3719, -182.98, -25.5239] - index = [0, 0, 0]
[-172.9, -116.666, 55.594] - index = [0, 0, 16]
Am I doing something wrong?
Thanks in advance
--
View this message in context: http://itk-users.7.n7.nabble.com/DICOM-Dataset-GetOrigin-tp38167.html
Sent from the ITK - Users mailing list archive at Nabble.com.
More information about the Insight-users
mailing list