[Insight-users] Casting 3D to 2D Images with CastImageFilter Results in Error
Constantine Zakkaroff
mnkz at leeds.ac.uk
Thu Jun 10 11:47:53 EDT 2010
Yello ALL.
The description for CastImageFilter says this:
CastImageFilter allows the input and output image to be different
dimensions. This is useful if you want to cast an 2D image to 3D image.
The resulting 3D image will have a single slice. If you attempt to cast
an image to a lower dimension, the first "slice" (or line or volume)
will be extracted. If you want to convert an image to a lower dimension
and specify the subspace (i.e. which slice of a volume, etc.) then you
should use ExtractImageFilter.
While it is a slightly odd thing to do, I thought it can be used as a
shortcut to turn M*N*1-sized 3D images into M*N-sized 2D images.
This code
typedef itk::Image<USHORT, 3> Image2DType;
typedef itk::OrientedImage<USHORT, 3> Image3DType;
typedef itk::CastImageFilter<Image3DType, Image2DType> Cast3DTo2DFilterType;
Cast3DTo2DFilterType::Pointer cast3DTo2DFilter =
Cast3DTo2DFilterType::New();
cast3DTo2DFilter->SetInput(reformattedAngioSlice);
cast3DTo2DFilter->Update();
results in error in
UnaryFunctorImageFilter<TInputImage,TOutputImage,TFunction>
::GenerateOutputInformation(), when the output and input directions are
compared. Method's code runs past the end of the output direction matrix.
... unless I'm doing something wrong with the filter.
Can anyone please clarify/confirm this issue?
Regards,
Constantine
More information about the Insight-users
mailing list