- typedef itk::CastImageFilter<InternalImageType,OutputImageType> CastImageFilterType;
- typedef itk::ImageFileWriter<OutputImageType> WriterType;
+ typedef itk::CastImageFilter<InternalImageType,MaskImageType> CastImageFilterType;
+ typedef itk::ImageFileWriter<MaskImageType> WriterType;
+
+ //---------------------------------
+ // 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;
+ }