X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=tools%2FclitkImageGradientMagnitudeGenericFilter.txx;h=7aecf99025de8963c95ffbedae28c342f999becd;hb=7d4e77191e55f668f316ba3ddf0fddb63e59bd25;hp=3167a1ef79293b0a729f98a7d090e94b3c66c851;hpb=bb584c26a90ee926ae1769537b36123c815ea942;p=clitk.git diff --git a/tools/clitkImageGradientMagnitudeGenericFilter.txx b/tools/clitkImageGradientMagnitudeGenericFilter.txx index 3167a1e..7aecf99 100644 --- a/tools/clitkImageGradientMagnitudeGenericFilter.txx +++ b/tools/clitkImageGradientMagnitudeGenericFilter.txx @@ -29,7 +29,8 @@ // itk include #include "itkGradientMagnitudeImageFilter.h" -#include "itkLabelStatisticsImageFilter.h"" +#include "itkGradientMagnitudeRecursiveGaussianImageFilter.h" +#include "itkLabelStatisticsImageFilter.h" #include "itkMaskImageFilter.h" #include "itkMaskNegatedImageFilter.h" #include @@ -101,7 +102,7 @@ namespace clitk // Reading input typename InputImageType::Pointer input = this->template GetInput(0); - typename MaskImageType::Pointer mask = NULL; + typename MaskImageType::Pointer mask = ITK_NULLPTR; if(mArgsInfo.mask_given) { mask = this->template GetInput(1); } @@ -127,13 +128,25 @@ namespace clitk IteratorOutputType ito = IteratorOutputType(outputImage, outputImage->GetLargestPossibleRegion()); // Filter + typename OutputImageType::Pointer outputGradientFilter; + if (mArgsInfo.gaussian_filter_flag == 0) { typedef itk::GradientMagnitudeImageFilter GradientMagnitudeImageFilterType; typename GradientMagnitudeImageFilterType::Pointer gradientFilter=GradientMagnitudeImageFilterType::New(); gradientFilter->SetInput(input); gradientFilter->Update(); + outputGradientFilter = gradientFilter->GetOutput(); + } + else { + typedef itk::GradientMagnitudeRecursiveGaussianImageFilter GradientMagnitudeImageFilterType; + typename GradientMagnitudeImageFilterType::Pointer gradientFilter=GradientMagnitudeImageFilterType::New(); + gradientFilter->SetInput(input); + gradientFilter->Update(); + //std::cout<<"sigma value="<GetSigma()<GetOutput(); + } // Set iterator typedef itk::ImageRegionIterator IteratorType; - IteratorType it(gradientFilter->GetOutput(), gradientFilter->GetOutput()->GetLargestPossibleRegion()); + IteratorType it(outputGradientFilter, outputGradientFilter->GetLargestPossibleRegion()); // Set mask iterator typedef itk::ImageRegionIterator IteratorMaskType; @@ -141,12 +154,12 @@ namespace clitk //typedef itk::MinimumMaximumImageCalculator ImageCalculatorFilterType; //typename ImageCalculatorFilterType::Pointer imageCalculatorFilter = ImageCalculatorFilterType::New(); - //imageCalculatorFilter->SetImage(gradientFilter->GetOutput()); + //imageCalculatorFilter->SetImage(outputGradientFilter); //imageCalculatorFilter->Compute(); typedef itk::LabelStatisticsImageFilter< OutputImageType, MaskImageType > LabelStatisticsImageFilterType; typename LabelStatisticsImageFilterType::Pointer labelStatisticsImageFilter = LabelStatisticsImageFilterType::New(); labelStatisticsImageFilter->SetLabelInput( mask ); - labelStatisticsImageFilter->SetInput(gradientFilter->GetOutput()); + labelStatisticsImageFilter->SetInput(outputGradientFilter); labelStatisticsImageFilter->Update(); //std::cout << "Number of labels: " << labelStatisticsImageFilter->GetNumberOfLabels() << std::endl; @@ -172,7 +185,7 @@ namespace clitk ++itm; } - //typename OutputImageType::Pointer outputImage = gradientFilter->GetOutput(); + //typename OutputImageType::Pointer outputImage = outputGradientFilter; this->template SetNextOutput(outputImage); } //--------------------------------------------------------------------