18 #ifndef sitkPatchBasedDenoisingImageFilter_h
19 #define sitkPatchBasedDenoisingImageFilter_h
63 SITK_RETURN_SELF_TYPE_HEADER
SetKernelBandwidthSigma (
double KernelBandwidthSigma ) { this->m_KernelBandwidthSigma = KernelBandwidthSigma;
return *
this; }
74 SITK_RETURN_SELF_TYPE_HEADER
SetPatchRadius ( uint32_t PatchRadius ) { this->m_PatchRadius = PatchRadius;
return *
this; }
86 SITK_RETURN_SELF_TYPE_HEADER
SetNumberOfIterations ( uint32_t NumberOfIterations ) { this->m_NumberOfIterations = NumberOfIterations;
return *
this; }
98 SITK_RETURN_SELF_TYPE_HEADER
SetNumberOfSamplePatches ( uint32_t NumberOfSamplePatches ) { this->m_NumberOfSamplePatches = NumberOfSamplePatches;
return *
this; }
108 SITK_RETURN_SELF_TYPE_HEADER
SetSampleVariance (
double SampleVariance ) { this->m_SampleVariance = SampleVariance;
return *
this; }
116 typedef enum {NOMODEL,GAUSSIAN,
RICIAN,POISSON} NoiseModelType;\
133 SITK_RETURN_SELF_TYPE_HEADER
SetNoiseSigma (
double NoiseSigma ) { this->m_NoiseSigma = NoiseSigma;
return *
this; }
143 SITK_RETURN_SELF_TYPE_HEADER
SetNoiseModelFidelityWeight (
double NoiseModelFidelityWeight ) { this->m_NoiseModelFidelityWeight = NoiseModelFidelityWeight;
return *
this; }
155 SITK_RETURN_SELF_TYPE_HEADER
SetAlwaysTreatComponentsAsEuclidean (
bool AlwaysTreatComponentsAsEuclidean ) { this->m_AlwaysTreatComponentsAsEuclidean = AlwaysTreatComponentsAsEuclidean;
return *
this; }
171 SITK_RETURN_SELF_TYPE_HEADER
SetKernelBandwidthEstimation (
bool KernelBandwidthEstimation ) { this->m_KernelBandwidthEstimation = KernelBandwidthEstimation;
return *
this; }
186 SITK_RETURN_SELF_TYPE_HEADER
SetKernelBandwidthMultiplicationFactor (
double KernelBandwidthMultiplicationFactor ) { this->m_KernelBandwidthMultiplicationFactor = KernelBandwidthMultiplicationFactor;
return *
this; }
197 SITK_RETURN_SELF_TYPE_HEADER
SetKernelBandwidthUpdateFrequency ( uint32_t KernelBandwidthUpdateFrequency ) { this->m_KernelBandwidthUpdateFrequency = KernelBandwidthUpdateFrequency;
return *
this; }
208 SITK_RETURN_SELF_TYPE_HEADER
SetKernelBandwidthFractionPixelsForEstimation (
double KernelBandwidthFractionPixelsForEstimation ) { this->m_KernelBandwidthFractionPixelsForEstimation = KernelBandwidthFractionPixelsForEstimation;
return *
this; }
216 std::string
GetName()
const {
return std::string (
"PatchBasedDenoisingImageFilter"); }
219 std::string ToString()
const;
231 template <
class TImageType>
Image ExecuteInternal (
const Image& image1 );
240 double m_KernelBandwidthSigma{400.0};
242 uint32_t m_PatchRadius{4u};
245 uint32_t m_NumberOfIterations{1u};
247 uint32_t m_NumberOfSamplePatches{200u};
249 double m_SampleVariance{400.0};
253 double m_NoiseSigma{0.0};
255 double m_NoiseModelFidelityWeight{0.0};
257 bool m_AlwaysTreatComponentsAsEuclidean{
false};
259 bool m_KernelBandwidthEstimation{
false};
261 double m_KernelBandwidthMultiplicationFactor{1.0};
263 uint32_t m_KernelBandwidthUpdateFrequency{3u};
265 double m_KernelBandwidthFractionPixelsForEstimation{0.2};