18 #ifndef __itkPatchBasedDenoisingBaseImageFilter_h
19 #define __itkPatchBasedDenoisingBaseImageFilter_h
92 template <
class TInputImage,
class TOutputImage>
111 itkStaticConstMacro(ImageDimension,
unsigned int,
112 InputImageType::ImageDimension);
123 typedef enum { GAUSSIAN = 0, RICIAN = 1, POISSON = 2 } NoiseModelType;
129 typedef enum { EUCLIDEAN = 0, RIEMANNIAN = 1 } ComponentSpaceType;
131 typedef enum { UNINITIALIZED = 0, INITIALIZED = 1 } FilterStateType;
142 typedef typename::itk::Statistics::ImageToNeighborhoodSampleAdaptor<
153 itkSetMacro(PatchRadius,
unsigned int);
154 itkGetConstMacro(PatchRadius,
unsigned int);
183 itkSetClampMacro(SmoothingWeight,
double, 0.0, 1.0);
184 itkGetConstMacro(SmoothingWeight,
double);
191 itkSetClampMacro(FidelityWeight,
double, 0.0, 1.0);
192 itkGetConstMacro(FidelityWeight,
double);
199 itkSetMacro(DoKernelBandwidthEstimation,
bool);
200 itkBooleanMacro(DoKernelBandwidthEstimation);
201 itkGetConstMacro(DoKernelBandwidthEstimation,
bool);
211 itkGetConstMacro(KernelBandwidthUpdateFrequency,
unsigned int);
219 itkGetConstReferenceMacro(NumberOfIterations,
unsigned int);
223 itkGetConstReferenceMacro(ElapsedIterations,
unsigned int);
229 itkSetMacro(AlwaysTreatComponentsAsEuclidean,
bool);
230 itkBooleanMacro(AlwaysTreatComponentsAsEuclidean);
231 itkGetConstMacro(AlwaysTreatComponentsAsEuclidean,
bool);
235 virtual void SetStateToInitialized();
238 virtual void SetStateToUninitialized();
241 #if !defined(CABLE_CONFIGURATION)
249 itkSetMacro(ManualReinitialization,
bool);
250 itkGetConstReferenceMacro(ManualReinitialization,
bool);
251 itkBooleanMacro(ManualReinitialization);
258 virtual void PrintSelf(std::ostream& os,
Indent indent)
const;
260 virtual void GenerateInputRequestedRegion();
262 virtual void GenerateData();
264 virtual void CopyInputToOutput() = 0;
267 virtual void InitializePatchWeights();
272 virtual void AllocateUpdateBuffer() = 0;
279 virtual void ComputeKernelBandwidthUpdate() = 0;
282 virtual void ComputeImageUpdate() = 0;
284 virtual void ApplyUpdate() = 0;
291 virtual bool ThreadedHalt(
void *itkNotUsed(threadInfo) )
296 itkSetMacro(ElapsedIterations,
unsigned int);
314 template <
class PixelT>
355 void operator=(
const Self&);
364 #ifndef ITK_MANUAL_INSTANTIATION
365 # include "itkPatchBasedDenoisingBaseImageFilter.hxx"