[Insight-developers] MetaImageWriter pixel type limitation
David Doria
daviddoria at gmail.com
Sun Nov 7 19:23:04 EST 2010
It seems I can write (using itkImageFileWriter) a:
itk::Image<itk::CovariantVector<double, 7>, 2>
but not a:
itk::Image<itk::CovariantVector<double, 8>, 2>
I get a "MetaImageIO: Pixel type currently not supported. typeid.name
= N3itk15CovariantVectorIdLj8EEE" error.
I looked around and found in itkImageIOBase.cxx that the Vector and
CovariantVector pixel types are manually checked to be between length
2 and 7. I'm assuming this was arbitrarily chosen because of the way
the pixel types are checked:
...
else if ( ptype == typeid( Vector< T, 5 > ) )
{
This->SetNumberOfComponents(5);
This->SetPixelType(ImageIOBase::VECTOR);
This->SetComponentType(ntype);
return true;
}
...
Is there a way to do something more like "check the length of the
vector, then set the number of components to the length" so we can
allow images with arbitrary length vector pixels to be written?
It seems hacky (and I don't know if this varies machine to machine or
build to build), but could you extract the length from the mangled
name:
N3itk15CovariantVectorIdLj8EEE -> length 8 ?
David
More information about the Insight-developers
mailing list