SimpleITK  
sitkPatchBasedDenoisingImageFilter.h
Go to the documentation of this file.
1/*=========================================================================
2*
3* Copyright NumFOCUS
4*
5* Licensed under the Apache License, Version 2.0 (the "License");
6* you may not use this file except in compliance with the License.
7* You may obtain a copy of the License at
8*
9* http://www.apache.org/licenses/LICENSE-2.0.txt
10*
11* Unless required by applicable law or agreed to in writing, software
12* distributed under the License is distributed on an "AS IS" BASIS,
13* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14* See the License for the specific language governing permissions and
15* limitations under the License.
16*
17*=========================================================================*/
18#ifndef sitkPatchBasedDenoisingImageFilter_h
19#define sitkPatchBasedDenoisingImageFilter_h
20
21/*
22 * WARNING: DO NOT EDIT THIS FILE!
23 * THIS FILE IS AUTOMATICALLY GENERATED BY THE SIMPLEITK BUILD PROCESS.
24 * Please look at sitkImageFilterTemplate.h.jinja to make changes.
25 */
26
27#include <memory>
28
29#include "sitkBasicFilters.h"
30#include "sitkImageFilter.h"
32
33namespace itk::simple {
34
55public:
57
60
64
67
68
69
70
75 void
76 SetKernelBandwidthSigma(double KernelBandwidthSigma )
77 { this->m_KernelBandwidthSigma = KernelBandwidthSigma; }
78
82 double
84
85
90 void
91 SetPatchRadius(uint32_t PatchRadius )
92 { this->m_PatchRadius = PatchRadius; }
93
97 uint32_t
98 GetPatchRadius() const { return this->m_PatchRadius; }
99
100
104 void
105 SetNumberOfIterations(uint32_t NumberOfIterations )
106 { this->m_NumberOfIterations = NumberOfIterations; }
107
110 uint32_t
112
113
117 void
118 SetNumberOfSamplePatches(uint32_t NumberOfSamplePatches )
119 { this->m_NumberOfSamplePatches = NumberOfSamplePatches; }
120
122 uint32_t
124
125
129 void
130 SetSampleVariance(double SampleVariance )
131 { this->m_SampleVariance = SampleVariance; }
132
135 double
136 GetSampleVariance() const { return this->m_SampleVariance; }
137
138 typedef enum { NOMODEL, GAUSSIAN, RICIAN, POISSON } NoiseModelType;
139
144 void
147
151 NoiseModelType
152 GetNoiseModel() const { return this->m_NoiseModel; }
153
154
158 void
159 SetNoiseSigma(double NoiseSigma )
160 { this->m_NoiseSigma = NoiseSigma; }
161
163 double
164 GetNoiseSigma() const { return this->m_NoiseSigma; }
165
166
171 void
172 SetNoiseModelFidelityWeight(double NoiseModelFidelityWeight )
173 { this->m_NoiseModelFidelityWeight = NoiseModelFidelityWeight; }
174
178 double
180
181
186 void
187 SetAlwaysTreatComponentsAsEuclidean(bool AlwaysTreatComponentsAsEuclidean )
188 { this->m_AlwaysTreatComponentsAsEuclidean = AlwaysTreatComponentsAsEuclidean; }
189
191 void
193 void
199 bool
201
202
207 void
208 SetKernelBandwidthEstimation(bool KernelBandwidthEstimation )
209 { this->m_KernelBandwidthEstimation = KernelBandwidthEstimation; }
210
212 void
214 void
220 bool
222
223
229 void
230 SetKernelBandwidthMultiplicationFactor(double KernelBandwidthMultiplicationFactor )
231 { this->m_KernelBandwidthMultiplicationFactor = KernelBandwidthMultiplicationFactor; }
232
237 double
239
240
246 void
247 SetKernelBandwidthUpdateFrequency(uint32_t KernelBandwidthUpdateFrequency )
248 { this->m_KernelBandwidthUpdateFrequency = KernelBandwidthUpdateFrequency; }
249
254 uint32_t
256
257
262 void
263 SetKernelBandwidthFractionPixelsForEstimation(double KernelBandwidthFractionPixelsForEstimation )
264 { this->m_KernelBandwidthFractionPixelsForEstimation = KernelBandwidthFractionPixelsForEstimation; }
265
269 double
271
272
274 std::string GetName() const { return std::string("PatchBasedDenoisingImageFilter"); }
275
277 std::string ToString() const;
278
279
281 Image Execute(const Image &image1);
282
283
284private:
286 using MemberFunctionType = Image (Self::*)(const Image &image1);
287 template <class TImageType> Image ExecuteInternal(const Image &image1);
290
291
292 /* KernelBandwidthSigma */
293 double m_KernelBandwidthSigma{ 400.0 };
294
295 uint32_t m_PatchRadius{ 4u };
296
297 /* Number of iterations to run */
298 uint32_t m_NumberOfIterations{ 1u };
299
300 uint32_t m_NumberOfSamplePatches{ 200u };
301
302 double m_SampleVariance{ 400.0 };
303
305
306 double m_NoiseSigma{ 0.0 };
307
309
311
313
315
317
319
320
321
322
323
324
325
326};
327
328
329}
330#endif
The Image class for SimpleITK.
Definition sitkImage.h:77
void SetKernelBandwidthUpdateFrequency(uint32_t KernelBandwidthUpdateFrequency)
void SetKernelBandwidthEstimation(bool KernelBandwidthEstimation)
Image ExecuteInternal(const Image &image1)
void SetKernelBandwidthFractionPixelsForEstimation(double KernelBandwidthFractionPixelsForEstimation)
void SetAlwaysTreatComponentsAsEuclidean(bool AlwaysTreatComponentsAsEuclidean)
void SetNoiseModelFidelityWeight(double NoiseModelFidelityWeight)
void SetKernelBandwidthMultiplicationFactor(double KernelBandwidthMultiplicationFactor)
static const detail::MemberFunctionFactory< MemberFunctionType > & GetMemberFunctionFactory()
A class used to instantiate and generate function object to templated member functions.
typelist2::typelist< BasicPixelID< int8_t >, BasicPixelID< uint8_t >, BasicPixelID< int16_t >, BasicPixelID< uint16_t >, BasicPixelID< int32_t >, BasicPixelID< uint32_t >, BasicPixelID< float >, BasicPixelID< double > > BasicPixelIDTypeList
#define SITKBasicFilters_EXPORT