18 #ifndef sitkN4BiasFieldCorrectionImageFilter_h
19 #define sitkN4BiasFieldCorrectionImageFilter_h
91 SITK_RETURN_SELF_TYPE_HEADER
SetConvergenceThreshold (
double ConvergenceThreshold ) { this->m_ConvergenceThreshold = ConvergenceThreshold;
return *
this; }
101 SITK_RETURN_SELF_TYPE_HEADER
SetMaximumNumberOfIterations ( std::vector<uint32_t> MaximumNumberOfIterations ) { this->m_MaximumNumberOfIterations = MaximumNumberOfIterations;
return *
this; }
111 SITK_RETURN_SELF_TYPE_HEADER
SetBiasFieldFullWidthAtHalfMaximum (
double BiasFieldFullWidthAtHalfMaximum ) { this->m_BiasFieldFullWidthAtHalfMaximum = BiasFieldFullWidthAtHalfMaximum;
return *
this; }
121 SITK_RETURN_SELF_TYPE_HEADER
SetWienerFilterNoise (
double WienerFilterNoise ) { this->m_WienerFilterNoise = WienerFilterNoise;
return *
this; }
141 SITK_RETURN_SELF_TYPE_HEADER
SetNumberOfControlPoints (
const std::vector<uint32_t> & NumberOfControlPoints ) { this->m_NumberOfControlPoints = NumberOfControlPoints;
return *
this; }
155 SITK_RETURN_SELF_TYPE_HEADER
SetSplineOrder (
uint32_t SplineOrder ) { this->m_SplineOrder = SplineOrder;
return *
this; }
162 std::string
GetName()
const {
return std::string (
"N4BiasFieldCorrectionImageFilter"); }
165 std::string ToString()
const;
173 Image Execute (
const Image & image,
const Image & maskImage,
double convergenceThreshold, std::vector<uint32_t> maximumNumberOfIterations,
double biasFieldFullWidthAtHalfMaximum,
double wienerFilterNoise,
uint32_t numberOfHistogramBins,
const std::vector<uint32_t> & numberOfControlPoints,
uint32_t splineOrder );
178 typedef Image (Self::*MemberFunctionType)(
const Image * image,
const Image * maskImage );
181 template <
class TImageType1,
class TImageType2>
Image DualExecuteInternal (
const Image * image,
const Image * maskImage );
214 SITKBasicFilters_EXPORT Image N4BiasFieldCorrection (
const Image & image,
const Image & maskImage,
double convergenceThreshold = 0.001, std::vector<uint32_t> maximumNumberOfIterations = std::vector<uint32_t>(4,50),
double biasFieldFullWidthAtHalfMaximum = 0.15,
double wienerFilterNoise = 0.01,
uint32_t numberOfHistogramBins = 200u,
const std::vector<uint32_t> & numberOfControlPoints = std::vector<uint32_t>(3, 4),
uint32_t splineOrder = 3u );
Self & SetWienerFilterNoise(double WienerFilterNoise)
Self & SetNumberOfControlPoints(uint32_t value)
double m_WienerFilterNoise
Self & SetNumberOfHistogramBins(uint32_t NumberOfHistogramBins)
std::vector< uint32_t > m_NumberOfControlPoints
#define SITKBasicFilters_EXPORT
double m_BiasFieldFullWidthAtHalfMaximum
Image N4BiasFieldCorrection(const Image &image, const Image &maskImage, double convergenceThreshold=0.001, std::vector< uint32_t > maximumNumberOfIterations=std::vector< uint32_t >(4, 50), double biasFieldFullWidthAtHalfMaximum=0.15, double wienerFilterNoise=0.01, uint32_t numberOfHistogramBins=200u, const std::vector< uint32_t > &numberOfControlPoints=std::vector< uint32_t >(3, 4), uint32_t splineOrder=3u)
Implementation of the N4 bias field correction algorithm.
Self & SetConvergenceThreshold(double ConvergenceThreshold)
Self & SetMaximumNumberOfIterations(std::vector< uint32_t > MaximumNumberOfIterations)
typelist::MakeTypeList< BasicPixelID< float >, BasicPixelID< double > >::Type RealPixelIDTypeList
double m_ConvergenceThreshold
std::vector< uint32_t > m_MaximumNumberOfIterations
double GetConvergenceThreshold() const
uint32_t GetNumberOfHistogramBins() const
double GetWienerFilterNoise() const
Implementation of the N4 bias field correction algorithm.
std::string GetName() const
uint32_t GetSplineOrder() const
The main Image class for SimpleITK.
std::vector< uint32_t > GetNumberOfControlPoints() const
Self & SetBiasFieldFullWidthAtHalfMaximum(double BiasFieldFullWidthAtHalfMaximum)
Self & SetNumberOfControlPoints(const std::vector< uint32_t > &NumberOfControlPoints)
RealPixelIDTypeList PixelIDTypeList
Self & SetSplineOrder(uint32_t SplineOrder)
uint32_t m_NumberOfHistogramBins
nsstd::auto_ptr< detail::DualMemberFunctionFactory< MemberFunctionType > > m_DualMemberFactory
std::vector< uint32_t > GetMaximumNumberOfIterations() const
The base interface for SimpleITK filters that take one input image.
N4BiasFieldCorrectionImageFilter Self
double GetBiasFieldFullWidthAtHalfMaximum() const