X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;ds=sidebyside;f=tools%2FclitkNVectorImageTo4DImageGenericFilter.txx;h=1ea44362f08a6de6d35bb648df5d68279d73dcd9;hb=d9c8c6e6c759655fc24d05d47b962d2ba574b95d;hp=0c2d42928918620930fb7d69e533477d5e671c44;hpb=d067c7f46d2cf1041d17ce2da8cfa4a9e8b939c2;p=clitk.git diff --git a/tools/clitkNVectorImageTo4DImageGenericFilter.txx b/tools/clitkNVectorImageTo4DImageGenericFilter.txx index 0c2d429..1ea4436 100644 --- a/tools/clitkNVectorImageTo4DImageGenericFilter.txx +++ b/tools/clitkNVectorImageTo4DImageGenericFilter.txx @@ -28,7 +28,6 @@ ===================================================*/ #include "itkVectorImageToImageAdaptor.h" -#include namespace clitk { @@ -42,8 +41,27 @@ namespace clitk { if (m_Verbose) std::cout << "Image was detected to be "<(); + if (PixelType == "short") { + UpdateWithDimAndPixelType(); + } else if (PixelType == "unsigned short") { + UpdateWithDimAndPixelType(); + } else if (PixelType == "unsigned_short") { + UpdateWithDimAndPixelType(); + } else if (PixelType == "char") { + UpdateWithDimAndPixelType(); + } else if (PixelType == "unsigned_char") { + UpdateWithDimAndPixelType(); + } else if (PixelType == "int") { + UpdateWithDimAndPixelType(); + } else if (PixelType == "unsigned_int") { + UpdateWithDimAndPixelType(); + } else if (PixelType == "double") { + UpdateWithDimAndPixelType(); + } else if (PixelType == "float") { + UpdateWithDimAndPixelType(); + } else { + std::cerr << "Error, pixel type : \"" << PixelType << "\" unknown !" << std::endl; + } } @@ -80,15 +98,30 @@ namespace clitk typename OutputImageType::IndexType index; index.Fill(0); typename OutputImageType::SizeType size; - for (unsigned int pixelDim=0; pixelDimGetNumberOfComponentsPerPixel(); ++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; pixelDimGetLargestPossibleRegion().GetSize(pixelDim); + size[pixelDim]=adaptor->GetLargestPossibleRegion().GetSize(pixelDim); + spacing[pixelDim]=input->GetSpacing()[pixelDim]; + origin[pixelDim]=input->GetOrigin()[pixelDim]; + for (unsigned int pixelDim2=0; pixelDim2GetDirection()[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);