#include "clitkSetBackgroundImageFilter.h"
#include "clitkSegmentationUtils.h"
#include "clitkAutoCropFilter.h"
+#include "clitkFillMaskFilter.h"
// itk
#include "itkBinaryThresholdImageFilter.h"
SetRadius2(s);
SetSampleRate2(0);
AutoCropOn();
+ FillHolesOn();
}
//--------------------------------------------------------------------
//--------------------------------------------------------------------
-//--------------------------------------------------------------------
-template <class TInputImageType>
-template<class ArgsInfoType>
-void
-clitk::ExtractBonesFilter<TInputImageType>::
-SetArgsInfo(ArgsInfoType mArgsInfo)
-{
- SetVerboseOption_GGO(mArgsInfo);
- SetVerboseStep_GGO(mArgsInfo);
- SetWriteStep_GGO(mArgsInfo);
- SetVerboseWarningOff_GGO(mArgsInfo);
-
- SetOutputBonesFilename_GGO(mArgsInfo);
-
- SetInitialSmoothing_GGO(mArgsInfo);
- SetSmoothingConductanceParameter_GGO(mArgsInfo);
- SetSmoothingNumberOfIterations_GGO(mArgsInfo);
- SetSmoothingTimeStep_GGO(mArgsInfo);
- SetSmoothingUseImageSpacing_GGO(mArgsInfo);
-
- SetMinimalComponentSize_GGO(mArgsInfo);
- SetUpperThreshold1_GGO(mArgsInfo);
- SetLowerThreshold1_GGO(mArgsInfo);
- SetFullConnectivity_GGO(mArgsInfo);
-
- SetUpperThreshold2_GGO(mArgsInfo);
- SetLowerThreshold2_GGO(mArgsInfo);
- SetRadius2_GGO(mArgsInfo);
- SetSampleRate2_GGO(mArgsInfo);
- SetAutoCrop_GGO(mArgsInfo);
-
- SetAFDBFilename_GGO(mArgsInfo);
-}
-//--------------------------------------------------------------------
-
//--------------------------------------------------------------------
template <class TInputImageType>
output = setBackgroundFilter->GetOutput();
+ //--------------------------------------------------------------------
+ //--------------------------------------------------------------------
+ // Fill Bones
+ if (GetFillHoles()) {
+ StartNewStep("Fill Holes");
+ typedef clitk::FillMaskFilter<InternalImageType> FillMaskFilterType;
+ typename FillMaskFilterType::Pointer fillMaskFilter = FillMaskFilterType::New();
+ fillMaskFilter->SetInput(output);
+ fillMaskFilter->AddDirection(2);
+ fillMaskFilter->Update();
+ output = fillMaskFilter->GetOutput();
+ StopCurrentStep<InternalImageType>(output);
+ }
+
//--------------------------------------------------------------------
//--------------------------------------------------------------------
// [Optional]
this->GraftOutput(caster->GetOutput());
// Store image filenames into AFDB
- GetAFDB()->SetImageFilename("bones", this->GetOutputBonesFilename());
+ GetAFDB()->SetImageFilename("Bones", this->GetOutputBonesFilename());
WriteAFDB();
return;
}