===================================================*/
#include "itkVectorImageToImageAdaptor.h"
-#include <sstream>
namespace clitk
{
{
if (m_Verbose) std::cout << "Image was detected to be "<<Dimension<<"D and "<< PixelType<<"..."<<std::endl;
- if (m_Verbose) std::cout << "Launching filter in "<< Dimension <<"D and 3D float..." << std::endl;
- UpdateWithDimAndPixelType<Dimension, float >();
+ if (PixelType == "short") {
+ UpdateWithDimAndPixelType<Dimension, short>();
+ } else if (PixelType == "unsigned short") {
+ UpdateWithDimAndPixelType<Dimension, unsigned short>();
+ } else if (PixelType == "unsigned_short") {
+ UpdateWithDimAndPixelType<Dimension, unsigned short>();
+ } else if (PixelType == "char") {
+ UpdateWithDimAndPixelType<Dimension, char>();
+ } else if (PixelType == "unsigned_char") {
+ UpdateWithDimAndPixelType<Dimension, unsigned char>();
+ } else if (PixelType == "int") {
+ UpdateWithDimAndPixelType<Dimension, int>();
+ } else if (PixelType == "unsigned_int") {
+ UpdateWithDimAndPixelType<Dimension, unsigned int>();
+ } else if (PixelType == "double") {
+ UpdateWithDimAndPixelType<Dimension, double>();
+ } else if (PixelType == "float") {
+ UpdateWithDimAndPixelType<Dimension, float>();
+ } else {
+ std::cerr << "Error, pixel type : \"" << PixelType << "\" unknown !" << std::endl;
+ }
}
typename OutputImageType::IndexType index;
index.Fill(0);
typename OutputImageType::SizeType size;
- for (unsigned int pixelDim=0; pixelDim<input->GetNumberOfComponentsPerPixel(); ++pixelDim)
+ size.Fill(input->GetNumberOfComponentsPerPixel());
+ typename OutputImageType::SpacingType spacing;
+ spacing.Fill(1);
+ typename OutputImageType::PointType origin;
+ origin.Fill(0);
+ typename OutputImageType::DirectionType direction;
+ direction.SetIdentity();
+ for (unsigned int pixelDim=0; pixelDim<Dimension; ++pixelDim)
{
- size[pixelDim]=input->GetLargestPossibleRegion().GetSize(pixelDim);
+ size[pixelDim]=adaptor->GetLargestPossibleRegion().GetSize(pixelDim);
+ spacing[pixelDim]=input->GetSpacing()[pixelDim];
+ origin[pixelDim]=input->GetOrigin()[pixelDim];
+ for (unsigned int pixelDim2=0; pixelDim2<Dimension; ++pixelDim2)
+ {
+ direction[pixelDim][pixelDim2]=input->GetDirection()[pixelDim][pixelDim2];
+ }
}
- size[Dimension]=input->GetNumberOfComponentsPerPixel();
typename OutputImageType::RegionType region;
region.SetSize(size);
region.SetIndex(index);
output->SetRegions(region);
+ output->SetOrigin(origin);
+ output->SetDirection(direction);
+ output->SetSpacing(spacing);
output->Allocate();
writer->SetInput(output);