18 #ifndef __itkPatchBasedDenoisingBaseImageFilter_h
19 #define __itkPatchBasedDenoisingBaseImageFilter_h
93 template <
class TInputImage,
class TOutputImage>
112 itkStaticConstMacro(ImageDimension,
unsigned int,
113 InputImageType::ImageDimension);
124 typedef enum { NOMODEL = 0, GAUSSIAN = 1, RICIAN = 2, POISSON = 3 } NoiseModelType;
130 typedef enum { EUCLIDEAN = 0, RIEMANNIAN = 1 } ComponentSpaceType;
132 typedef enum { UNINITIALIZED = 0, INITIALIZED = 1 } FilterStateType;
143 typedef typename::itk::Statistics::ImageToNeighborhoodSampleAdaptor<
154 itkSetMacro(PatchRadius,
unsigned int);
155 itkGetConstMacro(PatchRadius,
unsigned int);
184 itkSetClampMacro(SmoothingWeight,
double, 0.0, 1.0);
185 itkGetConstMacro(SmoothingWeight,
double);
192 itkSetClampMacro(NoiseModelFidelityWeight,
double, 0.0, 1.0);
193 itkGetConstMacro(NoiseModelFidelityWeight,
double);
200 itkSetMacro(KernelBandwidthEstimation,
bool);
201 itkBooleanMacro(KernelBandwidthEstimation);
202 itkGetConstMacro(KernelBandwidthEstimation,
bool);
212 itkGetConstMacro(KernelBandwidthUpdateFrequency,
unsigned int);
220 itkGetConstReferenceMacro(NumberOfIterations,
unsigned int);
224 itkGetConstReferenceMacro(ElapsedIterations,
unsigned int);
230 itkSetMacro(AlwaysTreatComponentsAsEuclidean,
bool);
231 itkBooleanMacro(AlwaysTreatComponentsAsEuclidean);
232 itkGetConstMacro(AlwaysTreatComponentsAsEuclidean,
bool);
236 virtual void SetStateToInitialized();
239 virtual void SetStateToUninitialized();
242 #if !defined(CABLE_CONFIGURATION)
250 itkSetMacro(ManualReinitialization,
bool);
251 itkGetConstReferenceMacro(ManualReinitialization,
bool);
252 itkBooleanMacro(ManualReinitialization);
259 virtual void PrintSelf(std::ostream& os,
Indent indent)
const;
261 virtual void GenerateInputRequestedRegion();
263 virtual void GenerateData();
265 virtual void CopyInputToOutput() = 0;
268 virtual void InitializePatchWeights();
273 virtual void AllocateUpdateBuffer() = 0;
280 virtual void ComputeKernelBandwidthUpdate() = 0;
283 virtual void ComputeImageUpdate() = 0;
285 virtual void ApplyUpdate() = 0;
292 virtual bool ThreadedHalt(
void *itkNotUsed(threadInfo) )
297 itkSetMacro(ElapsedIterations,
unsigned int);
315 template <
class PixelT>
356 void operator=(
const Self&);
365 #ifndef ITK_MANUAL_INSTANTIATION
366 # include "itkPatchBasedDenoisingBaseImageFilter.hxx"