[Insight-users] Writing functions for both images with vector pixels with images with scalar pixels
    David Doria 
    daviddoria at gmail.com
       
    Sat Nov 20 15:01:53 EST 2010
    
    
  
I have a
itk::Image<itk::CovariantVector<float,N>, 2>
and a
itk::Image<float, 2>
and I want to write a template function to print all of the pixels, for example.
The following works fine for "scalar" images which are actually vector
images with pixel vector length = 1
( itk::Image<itk::CovariantVector<float,1>, 2>  )
template <typename TImageType>
void ITKImagetoVTKImage(typename TImageType::Pointer image)
{
 // iterate over the pixels...
 // for each pixel, iterate over the components
      for(unsigned int component = 0; component <
image->GetPixel(index).Size(); component++)
        {
        DoSomething(image->GetPixel(index)[component]);
        }
}
but .Size() and GetPixel(index)[component] don't work on actual scalar
images ( itk::Image<float, 2> )
Is there any way to avoid having to write this type of function twice
to handle both types of images?
Thanks,
David
    
    
More information about the Insight-users
mailing list