X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=tools%2FclitkImageStatisticsGenericFilter.cxx;h=3d9bea5041106e5d2e6afdd40f5636fcdb29757e;hb=706d7e2dc69e12b3823cfae2f3be3f903e4d3c80;hp=23cf4df06eb75901590f2f7b9603960b9696ad8f;hpb=b96634936966a5da8c3d6ebb72b8954fb53b800a;p=clitk.git diff --git a/tools/clitkImageStatisticsGenericFilter.cxx b/tools/clitkImageStatisticsGenericFilter.cxx index 23cf4df..3d9bea5 100644 --- a/tools/clitkImageStatisticsGenericFilter.cxx +++ b/tools/clitkImageStatisticsGenericFilter.cxx @@ -1,7 +1,7 @@ /*========================================================================= Program: vv http://www.creatis.insa-lyon.fr/rio/vv - Authors belong to: + Authors belong to: - University of LYON http://www.universite-lyon.fr/ - Léon Bérard cancer center http://www.centreleonberard.fr - CREATIS CNRS laboratory http://www.creatis.insa-lyon.fr @@ -18,18 +18,8 @@ #ifndef clitkImageStatisticsGenericFilter_cxx #define clitkImageStatisticsGenericFilter_cxx -/* ================================================= - * @file clitkImageStatisticsGenericFilter.cxx - * @author - * @date - * - * @brief - * - ===================================================*/ - #include "clitkImageStatisticsGenericFilter.h" - namespace clitk { @@ -42,6 +32,7 @@ namespace clitk m_Verbose=false; m_InputFileName=""; } + //----------------------------------------------------------- //----------------------------------------------------------- @@ -53,23 +44,33 @@ namespace clitk int Dimension, Components; std::string PixelType; ReadImageDimensionAndPixelType(m_InputFileName, Dimension, PixelType, Components); - - if (m_ArgsInfo.channel_arg != -1 && m_ArgsInfo.channel_arg >= Components) { + + if (m_ArgsInfo.channel_arg < -1 || m_ArgsInfo.channel_arg >= Components) { std::cout << "Invalid image channel" << std::endl; return; } - + if (m_ArgsInfo.mask_given) { + int maskDimension, maskComponents; + std::string maskPixelType; + ReadImageDimensionAndPixelType(m_ArgsInfo.mask_arg, maskDimension, maskPixelType, maskComponents); + if (!(maskDimension == Dimension || maskDimension == (Dimension - 1))) { + std::cout << "Dimension of label mask must be equal to the (d)imension of the input image or d-1." << std::endl; + return; + } + } + + // Call UpdateWithDim if (Dimension==2) { switch (Components) { - case 1: + case 1: UpdateWithDim<2,1>(PixelType); break; - case 2: + case 2: UpdateWithDim<2,2>(PixelType); break; - case 3: + case 3: UpdateWithDim<2,3>(PixelType); break; default: @@ -79,13 +80,13 @@ namespace clitk } else if (Dimension==3) { switch (Components) { - case 1: + case 1: UpdateWithDim<3,1>(PixelType); break; - case 2: + case 2: UpdateWithDim<3,2>(PixelType); break; - case 3: + case 3: UpdateWithDim<3,3>(PixelType); break; default: @@ -95,13 +96,13 @@ namespace clitk } else if (Dimension==4) { switch (Components) { - case 1: + case 1: UpdateWithDim<4,1>(PixelType); break; - case 2: + case 2: UpdateWithDim<4,2>(PixelType); break; - case 3: + case 3: UpdateWithDim<4,3>(PixelType); break; default: