ITK  4.13.0
Insight Segmentation and Registration Toolkit
WikiExamples/VectorImages/VectorIndexSelectionCastImageFilter.cxx
#include "itkVectorImage.h"
typedef itk::VectorImage<float, 2> VectorImageType;
typedef itk::Image<float, 2> ScalarImageType;
static void CreateImage(VectorImageType::Pointer image);
int main(int, char *[])
{
VectorImageType::Pointer image = VectorImageType::New();
CreateImage(image);
IndexSelectionType::Pointer indexSelectionFilter = IndexSelectionType::New();
indexSelectionFilter->SetIndex(0);
indexSelectionFilter->SetInput(image);
typedef itk::MinimumMaximumImageCalculator <ScalarImageType> ImageCalculatorFilterType;
ImageCalculatorFilterType::Pointer imageCalculatorFilter = ImageCalculatorFilterType::New();
imageCalculatorFilter->SetImage(indexSelectionFilter->GetOutput());
imageCalculatorFilter->Compute();
return EXIT_SUCCESS;
}
void CreateImage(VectorImageType::Pointer image)
{
start.Fill(0);
size.Fill(2);
VectorImageType::RegionType region(start, size);
image->SetRegions(region);
image->SetNumberOfComponentsPerPixel(3);
image->Allocate();
typedef itk::VariableLengthVector<double> VariableVectorType;
VariableVectorType variableLengthVector;
variableLengthVector.SetSize(3);
variableLengthVector[0] = 1.1;
variableLengthVector[1] = 2.2;
variableLengthVector[2] = 3.3;
image->FillBuffer(variableLengthVector);
}