From e3fcfe79cca98e294b4b80939d7f67fb6a3b88a8 Mon Sep 17 00:00:00 2001 From: Romulo Pinho Date: Fri, 17 Feb 2012 15:36:50 +0100 Subject: [PATCH] clitkSetBackground accepts vector fields --- tools/clitkSetBackgroundGenericFilter.cxx | 47 +++++++++++++++++++---- tools/clitkSetBackgroundGenericFilter.txx | 3 +- 2 files changed, 40 insertions(+), 10 deletions(-) diff --git a/tools/clitkSetBackgroundGenericFilter.cxx b/tools/clitkSetBackgroundGenericFilter.cxx index 038fcca..2cb3c00 100644 --- a/tools/clitkSetBackgroundGenericFilter.cxx +++ b/tools/clitkSetBackgroundGenericFilter.cxx @@ -50,19 +50,50 @@ SetBackgroundGenericFilter::SetBackgroundGenericFilter() void SetBackgroundGenericFilter::Update() { // Read the Dimension and PixelType - int Dimension; + int Dimension, Components; std::string PixelType; - ReadImageDimensionAndPixelType(m_InputFileName, Dimension, PixelType); + //ReadImageDimensionAndPixelType(m_InputFileName, Dimension, PixelType); + ReadImageDimensionAndPixelType(m_InputFileName, Dimension, PixelType, Components); - - // Call UpdateWithDim - if(Dimension==2) UpdateWithDim<2>(PixelType); - else if(Dimension==3) UpdateWithDim<3>(PixelType); - else if (Dimension==4)UpdateWithDim<4>(PixelType); - else { + if (Dimension > 4) { std::cout<<"Error, Only for 2 , 3 or 4 Dimensions!!!"< 3) { + std::cout<<"Error, Only 1, 2, or 3-component images are supported!!!"< 1 && PixelType != "float") { + std::cout<<"Error, Only float multi-component images are supported!!!"<(PixelType); + else if(Dimension==3) UpdateWithDim<3>(PixelType); + else if (Dimension==4)UpdateWithDim<4>(PixelType); + break; + case 2: + { + typedef itk::Vector TPixelType; + if(Dimension==2) UpdateWithDimAndPixelType<2, TPixelType>(); + else if(Dimension==3) UpdateWithDimAndPixelType<3, TPixelType>(); + else if (Dimension==4)UpdateWithDimAndPixelType<4, TPixelType>(); + break; + } + case 3: + { + typedef itk::Vector TPixelType; + if(Dimension==2) UpdateWithDimAndPixelType<2, TPixelType>(); + else if(Dimension==3) UpdateWithDimAndPixelType<3, TPixelType>(); + else if (Dimension==4)UpdateWithDimAndPixelType<4, TPixelType>(); + break; + } + } } diff --git a/tools/clitkSetBackgroundGenericFilter.txx b/tools/clitkSetBackgroundGenericFilter.txx index 8a825ad..63ccfb0 100644 --- a/tools/clitkSetBackgroundGenericFilter.txx +++ b/tools/clitkSetBackgroundGenericFilter.txx @@ -54,7 +54,6 @@ SetBackgroundGenericFilter::UpdateWithDim(std::string PixelType) } } - //------------------------------------------------------------------- // Update with the number of dimensions and the pixeltype //------------------------------------------------------------------- @@ -65,7 +64,7 @@ SetBackgroundGenericFilter::UpdateWithDimAndPixelType() // ImageTypes typedef itk::Image InputImageType; - typedef itk::Image MaskImageType; + typedef itk::Image MaskImageType; // Read the input typedef itk::ImageFileReader InputReaderType; -- 2.47.1