X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=tools%2FclitkImageGradientMagnitudeGenericFilter.txx;h=1df5601732e76c5fd40683697039f841468edb33;hb=refs%2Fheads%2FextentSimon;hp=95ac742f6d09cbd0558e929de7d5a938a1e0ac67;hpb=15712a2de2e4b6d318506df3f47837827ba41d64;p=clitk.git diff --git a/tools/clitkImageGradientMagnitudeGenericFilter.txx b/tools/clitkImageGradientMagnitudeGenericFilter.txx index 95ac742..1df5601 100644 --- a/tools/clitkImageGradientMagnitudeGenericFilter.txx +++ b/tools/clitkImageGradientMagnitudeGenericFilter.txx @@ -29,6 +29,7 @@ // itk include #include "itkGradientMagnitudeImageFilter.h" +#include "itkGradientMagnitudeRecursiveGaussianImageFilter.h" #include "itkLabelStatisticsImageFilter.h" #include "itkMaskImageFilter.h" #include "itkMaskNegatedImageFilter.h" @@ -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); } //--------------------------------------------------------------------