18 #ifndef itkPatchBasedDenoisingBaseImageFilter_h
19 #define itkPatchBasedDenoisingBaseImageFilter_h
93 template <
typename TInputImage,
typename TOutputImage>
113 InputImageType::ImageDimension);
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);
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 ITK_OVERRIDE;
297 itkSetMacro(ElapsedIterations,
unsigned int);
315 template <
typename PixelT>
365 #ifndef ITK_MANUAL_INSTANTIATION
366 # include "itkPatchBasedDenoisingBaseImageFilter.hxx"
const InputImageType * m_InputImage
unsigned int m_KernelBandwidthUpdateFrequency
A function object that determines a neighborhood of values at an image boundary according to a Neuman...
SmartPointer< const Self > ConstPointer
unsigned int m_PatchRadius
ImageToImageFilter< TInputImage, TOutputImage > Superclass
virtual void PrintSelf(std::ostream &os, Indent indent) const override
ConstNeighborhoodIterator< InputImageType, BoundaryConditionType > InputImagePatchIterator
Represent Red, Green, Blue and Alpha components for color images.
InputImageType::PixelType InputPixelType
Base class for patch-based denoising algorithms.
virtual void PreProcessInput()
ZeroFluxNeumannBoundaryCondition< OutputImageType > BoundaryConditionType
NoiseModelType m_NoiseModel
OutputImageType * m_OutputImage
~PatchBasedDenoisingBaseImageFilter()
PatchRadiusType::SizeValueType GetPatchLengthInVoxels() const
SmartPointer< Self > Pointer
TInputImage InputImageType
virtual void SetStateToUninitialized()
Base class for all process objects that output image data.
Const version of NeighborhoodIterator, defining iteration of a local N-dimensional neighborhood of pi...
unsigned long SizeValueType
virtual void ComputeImageUpdate()=0
OutputPixelType PixelType
virtual void GenerateInputRequestedRegion() override
virtual void ApplyUpdate()=0
TOutputImage OutputImageType
typename::itk::Statistics::ImageToNeighborhoodSampleAdaptor< OutputImageType, BoundaryConditionType > ListAdaptorType
double m_NoiseModelFidelityWeight
unsigned int m_ElapsedIterations
PatchBasedDenoisingBaseImageFilter Self
virtual void InitializeIteration()
ComponentSpaceType DetermineComponentSpace(const RGBAPixel< PixelValueType > &)
bool m_KernelBandwidthEstimation
virtual void GenerateData() override
virtual bool ThreadedHalt(void *)
ComponentSpaceType m_ComponentSpace
unsigned int m_NumberOfIterations
void operator=(const Self &)
virtual void AllocateUpdateBuffer()=0
PatchRadiusType GetPatchRadiusInVoxels() const
virtual void ComputeKernelBandwidthUpdate()=0
Represent Red, Green and Blue components for color images.
virtual void PostProcessOutput()
ComponentSpaceType DetermineComponentSpace(const RGBPixel< PixelValueType > &)
PatchRadiusType GetPatchDiameterInVoxels() const
bool m_AlwaysTreatComponentsAsEuclidean
ComponentSpaceType DetermineComponentSpace(const PixelT &)
Base class for filters that take an image as input and produce an image as output.
PatchWeightsType GetPatchWeights() const
Control indentation during Print() invocation.
virtual void SetStateToInitialized()
Array< float > PatchWeightsType
virtual void CopyInputToOutput()=0
OutputImageType::PixelType OutputPixelType
PatchWeightsType m_PatchWeights
Define additional traits for native types such as int or float.
PatchBasedDenoisingBaseImageFilter()
virtual void Initialize()
static const unsigned int ImageDimension
bool m_ManualReinitialization
void SetPatchWeights(const PatchWeightsType &weights)
Represent a diffusion tensor as used in DTI images.
NumericTraits< PixelType >::ValueType PixelValueType
ComponentSpaceType DetermineComponentSpace(const DiffusionTensor3D< PixelValueType > &)
ListAdaptorType::NeighborhoodRadiusType PatchRadiusType
virtual void InitializePatchWeights()