+ //---------------------------------
+ // Smoothing [Optional]
+ //---------------------------------
+ if (GetInitialSmoothing()) {
+ StartNewStep("Initial Smoothing");
+ typedef itk::CurvatureAnisotropicDiffusionImageFilter<InputImageType, InputImageType> FilterType;
+ typename FilterType::Pointer df = FilterType::New();
+ df->SetConductanceParameter(GetSmoothingConductanceParameter());
+ df->SetNumberOfIterations(GetSmoothingNumberOfIterations());
+ df->SetTimeStep(GetSmoothingTimeStep());
+ df->SetUseImageSpacing(GetSmoothingUseImageSpacing());
+ df->SetInput(input);
+ df->Update();
+ filtered_input = df->GetOutput();
+ StopCurrentStep<InputImageType>(filtered_input);
+ }
+ else {
+ filtered_input = input;
+ }
+