18 #ifndef sitkN4BiasFieldCorrectionImageFilter_h
19 #define sitkN4BiasFieldCorrectionImageFilter_h
92 SITK_RETURN_SELF_TYPE_HEADER
SetConvergenceThreshold (
double ConvergenceThreshold ) { this->m_ConvergenceThreshold = ConvergenceThreshold;
return *
this; }
102 SITK_RETURN_SELF_TYPE_HEADER
SetMaximumNumberOfIterations ( std::vector<uint32_t> MaximumNumberOfIterations ) { this->m_MaximumNumberOfIterations = MaximumNumberOfIterations;
return *
this; }
112 SITK_RETURN_SELF_TYPE_HEADER
SetBiasFieldFullWidthAtHalfMaximum (
double BiasFieldFullWidthAtHalfMaximum ) { this->m_BiasFieldFullWidthAtHalfMaximum = BiasFieldFullWidthAtHalfMaximum;
return *
this; }
122 SITK_RETURN_SELF_TYPE_HEADER
SetWienerFilterNoise (
double WienerFilterNoise ) { this->m_WienerFilterNoise = WienerFilterNoise;
return *
this; }
132 SITK_RETURN_SELF_TYPE_HEADER
SetNumberOfHistogramBins ( uint32_t NumberOfHistogramBins ) { this->m_NumberOfHistogramBins = NumberOfHistogramBins;
return *
this; }
142 SITK_RETURN_SELF_TYPE_HEADER
SetNumberOfControlPoints ( std::vector<uint32_t> NumberOfControlPoints ) { this->m_NumberOfControlPoints = std::move(NumberOfControlPoints);
return *
this; }
145 SITK_RETURN_SELF_TYPE_HEADER
SetNumberOfControlPoints( uint32_t value ) { this->m_NumberOfControlPoints = std::vector<uint32_t>(3, value);
return *
this; }
155 SITK_RETURN_SELF_TYPE_HEADER
SetSplineOrder ( uint32_t SplineOrder ) { this->m_SplineOrder = SplineOrder;
return *
this; }
165 SITK_RETURN_SELF_TYPE_HEADER
SetUseMaskLabel (
bool UseMaskLabel ) { this->m_UseMaskLabel = UseMaskLabel;
return *
this; }
168 SITK_RETURN_SELF_TYPE_HEADER
UseMaskLabelOn() {
return this->SetUseMaskLabel(
true); }
169 SITK_RETURN_SELF_TYPE_HEADER
UseMaskLabelOff() {
return this->SetUseMaskLabel(
false); }
179 SITK_RETURN_SELF_TYPE_HEADER
SetMaskLabel ( uint8_t MaskLabel ) { this->m_MaskLabel = MaskLabel;
return *
this; }
224 std::string
GetName()
const {
return std::string (
"N4BiasFieldCorrectionImageFilter"); }
227 std::string ToString()
const;
240 template <
class TImageType>
Image ExecuteInternal (
const Image * image,
const Image * maskImage );
249 double m_ConvergenceThreshold{0.001};
252 std::vector<uint32_t> m_MaximumNumberOfIterations{std::vector<uint32_t>(4,50)};
255 double m_BiasFieldFullWidthAtHalfMaximum{0.15};
258 double m_WienerFilterNoise{0.01};
261 uint32_t m_NumberOfHistogramBins{200u};
264 std::vector<uint32_t> m_NumberOfControlPoints{std::vector<uint32_t>(3, 4)};
267 uint32_t m_SplineOrder{3u};
269 bool m_UseMaskLabel{
true};
271 uint8_t m_MaskLabel{1};
297 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, std::vector<uint32_t> numberOfControlPoints = std::vector<uint32_t>(3, 4), uint32_t splineOrder = 3u,
bool useMaskLabel =
true, uint8_t maskLabel = 1 );
298 SITKBasicFilters_EXPORT Image N4BiasFieldCorrection (
const Image & image,
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, std::vector<uint32_t> numberOfControlPoints = std::vector<uint32_t>(3, 4), uint32_t splineOrder = 3u,
bool useMaskLabel =
true, uint8_t maskLabel = 1 );