template<class TInputImage, class TOutputImage>
class itk::PatchBasedDenoisingImageFilter< TInputImage, TOutputImage >
Derived class implementing a specific patch-based denoising algorithm, as detailed below.
This class is derived from the base class PatchBasedDenoisingBaseImageFilter; please refer to the documentation of the base class first. This class implements a denoising filter that uses iterative non-local, or semi-local, weighted averaging of image patches for image denoising. The intensity at each pixel 'p' gets updated as a weighted average of intensities of a chosen subset of pixels from the image.
This class implements the denoising algorithm using a Gaussian kernel function for nonparametric density estimation. The class implements a scheme to automatically estimated the kernel bandwidth parameter (namely, sigma) using leave-one-out cross validation. It implements schemes for random sampling of patches non-locally (from the entire image) as well as semi-locally (from the spatial proximity of the pixel being denoised at the specific point in time). It implements a specific scheme for defining patch weights (mask) as described in Awate and Whitaker 2005 IEEE CVPR and 2006 IEEE TPAMI.
- See Also
- PatchBasedDenoisingBaseImageFilter
Definition at line 63 of file itkPatchBasedDenoisingImageFilter.h.
|
| typedef BaseSamplerType::Pointer | BaseSamplerPointer |
| |
typedef
itk::Statistics::RegionConstrainedSubsampler
< PatchSampleType,
InputImageRegionType > | BaseSamplerType |
| |
| typedef SmartPointer< const Self > | ConstPointer |
| |
typedef FixedArray
< PixelValueType, 3 > | EigenValuesArrayType |
| |
typedef std::vector
< EigenValuesArrayType * > | EigenValuesCacheType |
| |
typedef std::vector
< EigenVectorsMatrixType * > | EigenVectorsCacheType |
| |
| typedef Matrix< PixelValueType, 3, 3 > | EigenVectorsMatrixType |
| |
typedef
Superclass::InputImagePatchIterator | InputImagePatchIterator |
| |
typedef
ImageRegionConstIterator
< InputImageType > | InputImageRegionConstIteratorType |
| |
| typedef InputImageType::RegionType | InputImageRegionType |
| |
| typedef Superclass::InputImageType | InputImageType |
| |
typedef
BaseSamplerType::InstanceIdentifier | InstanceIdentifier |
| |
| typedef Superclass::ListAdaptorType | ListAdaptorType |
| |
typedef
Superclass::OutputImagePointer | OutputImagePointer |
| |
typedef ImageRegionIterator
< OutputImageType > | OutputImageRegionIteratorType |
| |
| typedef Superclass::OutputImageType | OutputImageType |
| |
| typedef Superclass::PatchRadiusType | PatchRadiusType |
| |
| typedef ListAdaptorType | PatchSampleType |
| |
typedef
Superclass::PatchWeightsType | PatchWeightsType |
| |
| typedef Array< PixelValueType > | PixelArrayType |
| |
| typedef Superclass::PixelType | PixelType |
| |
| typedef Superclass::PixelValueType | PixelValueType |
| |
| typedef SmartPointer< Self > | Pointer |
| |
| typedef Array< RealValueType > | RealArrayType |
| |
typedef NumericTraits
< PixelType >::RealType | RealType |
| |
typedef NumericTraits
< PixelValueType >::RealType | RealValueType |
| |
typedef
PatchBasedDenoisingImageFilter | Self |
| |
| typedef Array< unsigned short > | ShortArrayType |
| |
typedef
PatchBasedDenoisingBaseImageFilter
< TInputImage, TOutputImage > | Superclass |
| |
typedef
ZeroFluxNeumannBoundaryCondition
< OutputImageType > | BoundaryConditionType |
| |
| enum | ComponentSpaceType {
EUCLIDEAN = 0,
RIEMANNIAN = 1
} |
| |
| typedef SmartPointer< const Self > | ConstPointer |
| |
| enum | FilterStateType {
UNINITIALIZED = 0,
INITIALIZED = 1
} |
| |
typedef
ConstNeighborhoodIterator
< InputImageType,
BoundaryConditionType > | InputImagePatchIterator |
| |
| typedef TInputImage | InputImageType |
| |
| typedef InputImageType::PixelType | InputPixelType |
| |
typedef
typename::itk::Statistics::ImageToNeighborhoodSampleAdaptor
< OutputImageType,
BoundaryConditionType > | ListAdaptorType |
| |
| enum | NoiseModelType {
NOMODEL = 0,
GAUSSIAN = 1,
RICIAN = 2,
POISSON = 3
} |
| |
| typedef TOutputImage | OutputImageType |
| |
| typedef OutputImageType::PixelType | OutputPixelType |
| |
typedef
ListAdaptorType::NeighborhoodRadiusType | PatchRadiusType |
| |
| typedef Array< float > | PatchWeightsType |
| |
| typedef OutputPixelType | PixelType |
| |
typedef NumericTraits
< PixelType >::ValueType | PixelValueType |
| |
| typedef SmartPointer< Self > | Pointer |
| |
typedef
PatchBasedDenoisingBaseImageFilter | Self |
| |
typedef ImageToImageFilter
< TInputImage, TOutputImage > | Superclass |
| |
| typedef SmartPointer< const Self > | ConstPointer |
| |
typedef
InputImageType::ConstPointer | InputImageConstPointer |
| |
| typedef InputImageType::PixelType | InputImagePixelType |
| |
| typedef InputImageType::Pointer | InputImagePointer |
| |
| typedef InputImageType::RegionType | InputImageRegionType |
| |
| typedef TInputImage | InputImageType |
| |
typedef
Superclass::OutputImagePixelType | OutputImagePixelType |
| |
typedef
Superclass::OutputImageRegionType | OutputImageRegionType |
| |
| typedef SmartPointer< Self > | Pointer |
| |
| typedef ImageToImageFilter | Self |
| |
| typedef ImageSource< TOutputImage > | Superclass |
| |
| typedef SmartPointer< const Self > | ConstPointer |
| |
typedef
Superclass::DataObjectIdentifierType | DataObjectIdentifierType |
| |
| typedef DataObject::Pointer | DataObjectPointer |
| |
typedef
Superclass::DataObjectPointerArraySizeType | DataObjectPointerArraySizeType |
| |
| typedef OutputImageType::PixelType | OutputImagePixelType |
| |
| typedef OutputImageType::Pointer | OutputImagePointer |
| |
| typedef OutputImageType::RegionType | OutputImageRegionType |
| |
| typedef TOutputImage | OutputImageType |
| |
| typedef SmartPointer< Self > | Pointer |
| |
| typedef ImageSource | Self |
| |
| typedef ProcessObject | Superclass |
| |
| typedef SmartPointer< const Self > | ConstPointer |
| |
typedef
DataObject::DataObjectIdentifierType | DataObjectIdentifierType |
| |
| typedef DataObject::Pointer | DataObjectPointer |
| |
typedef std::vector
< DataObjectPointer > | DataObjectPointerArray |
| |
typedef
DataObjectPointerArray::size_type | DataObjectPointerArraySizeType |
| |
typedef std::vector
< DataObjectIdentifierType > | NameArray |
| |
| typedef SmartPointer< Self > | Pointer |
| |
| typedef ProcessObject | Self |
| |
| typedef Object | Superclass |
| |
| typedef SmartPointer< const Self > | ConstPointer |
| |
| typedef SmartPointer< Self > | Pointer |
| |
| typedef Object | Self |
| |
| typedef LightObject | Superclass |
| |
| typedef SmartPointer< const Self > | ConstPointer |
| |
| typedef SmartPointer< Self > | Pointer |
| |
| typedef LightObject | Self |
| |
|
| template<class RealT > |
| RealType | AddUpdate (const RealT &a, const RealType &b) |
| |
| virtual void | AllocateUpdateBuffer () |
| |
| virtual void | ApplyUpdate () |
| |
| template<class PixelT > |
| void | ComputeDifferenceAndWeightedSquaredNorm (const PixelT &a, const PixelT &b, const RealArrayType &weight, bool useCachedComputations, SizeValueType cacheIndex, EigenValuesCacheType &eigenValsCache, EigenVectorsCacheType &eigenVecsCache, RealType &diff, RealArrayType &norm) |
| |
| virtual RealType | ComputeGradientJointEntropy (InstanceIdentifier id, typename ListAdaptorType::Pointer &inList, BaseSamplerPointer &sampler, ThreadDataStruct &threadData) |
| |
| virtual void | ComputeImageUpdate () |
| |
| virtual void | ComputeKernelBandwidthUpdate () |
| |
| void | ComputeMinMax (const Image< DiffusionTensor3D< PixelValueType >, ImageDimension > *img) |
| |
| template<typename TImageType > |
EnableIfC< IsSame< typename
TImageType::PixelType,
typename NumericTraits
< typename
TImageType::PixelType >
::ValueType >::Value >::Type | ComputeMinMax (const TImageType *img) |
| |
| template<typename TImageType > |
DisableIfC< IsSame< typename
TImageType::PixelType,
typename NumericTraits
< typename
TImageType::PixelType >
::ValueType >::Value >::Type | ComputeMinMax (const TImageType *img) |
| |
| virtual void | CopyInputToOutput () |
| |
| virtual void | EmptyCaches () |
| |
| virtual void | EnforceConstraints () |
| |
| virtual void | GenerateInputRequestedRegion () |
| |
| template<typename T > |
EnableIfC< IsSame< T, typename
NumericTraits< T >::ValueType >
::Value, T >::Type | GetComponent (const T pix, unsigned int) const |
| |
| template<typename T > |
DisableIfC< IsSame< T,
typename NumericTraits< T >
::ValueType >::Value, typename
NumericTraits< T >::ValueType >
::Type | GetComponent (const T &pix, unsigned int idx) const |
| |
| virtual ThreadDataStruct | GetThreadData (int threadId) |
| |
| virtual void | Initialize () |
| |
| virtual void | InitializeIteration () |
| |
| virtual void | InitializeKernelSigma () |
| |
| virtual void | InitializePatchWeights () |
| |
| virtual void | InitializePatchWeightsSmoothDisc () |
| |
| | PatchBasedDenoisingImageFilter () |
| |
| virtual void | PostProcessOutput () |
| |
| virtual void | PrintSelf (std::ostream &os, Indent indent) const |
| |
| virtual RealArrayType | ResolveSigmaUpdate () |
| |
| template<typename T > |
| void | SetComponent (T &pix, unsigned int, typename EnableIfC< IsSame< T, typename NumericTraits< T >::ValueType >::Value, RealValueType >::Type val) const |
| |
| template<typename T > |
| void | SetComponent (T &pix, unsigned int idx, typename DisableIfC< IsSame< T, typename NumericTraits< T >::ValueType >::Value, RealValueType >::Type val) const |
| |
| virtual void | SetThreadData (int threadId, const ThreadDataStruct &data) |
| |
| virtual void | ThreadedApplyUpdate (const InputImageRegionType ®ionToProcess, const int) |
| |
| virtual ThreadDataStruct | ThreadedComputeImageUpdate (const InputImageRegionType ®ionToProcess, const int threadId, ThreadDataStruct threadData) |
| |
| virtual ThreadDataStruct | ThreadedComputeSigmaUpdate (const InputImageRegionType ®ionToProcess, const int, ThreadDataStruct threadData) |
| |
| | ~PatchBasedDenoisingImageFilter () |
| |
|
| void | ComputeDifferenceAndWeightedSquaredNorm (const DiffusionTensor3D< PixelValueType > &a, const DiffusionTensor3D< PixelValueType > &b, const RealArrayType &weight, bool useCachedComputations, SizeValueType cacheIndex, EigenValuesCacheType &eigenValsCache, EigenVectorsCacheType &eigenVecsCache, RealType &diff, RealArrayType &norm) |
| |
|
| RealType | AddUpdate (const DiffusionTensor3D< RealValueType > &a, const RealType &b) |
| |
| ComponentSpaceType | DetermineComponentSpace (const RGBPixel< PixelValueType > &) |
| |
| ComponentSpaceType | DetermineComponentSpace (const RGBAPixel< PixelValueType > &) |
| |
| ComponentSpaceType | DetermineComponentSpace (const DiffusionTensor3D< PixelValueType > &) |
| |
| template<class PixelT > |
| ComponentSpaceType | DetermineComponentSpace (const PixelT &) |
| |
| virtual void | GenerateData () |
| |
| virtual bool | Halt () |
| |
| | PatchBasedDenoisingBaseImageFilter () |
| |
| virtual void | PreProcessInput () |
| |
| virtual void | SetElapsedIterations (unsigned int _arg) |
| |
| virtual bool | ThreadedHalt (void *) |
| |
| | ~PatchBasedDenoisingBaseImageFilter () |
| |
| virtual void | CallCopyInputRegionToOutputRegion (OutputImageRegionType &destRegion, const InputImageRegionType &srcRegion) |
| |
| virtual void | CallCopyOutputRegionToInputRegion (InputImageRegionType &destRegion, const OutputImageRegionType &srcRegion) |
| |
| | ImageToImageFilter () |
| |
| virtual void | VerifyInputInformation () |
| |
| | ~ImageToImageFilter () |
| |
| void | PushBackInput (const DataObject *input) |
| |
| void | PushFrontInput (const DataObject *input) |
| |
| virtual void | AfterThreadedGenerateData () |
| |
| virtual void | AllocateOutputs () |
| |
| virtual void | BeforeThreadedGenerateData () |
| |
virtual const
ImageRegionSplitterBase * | GetImageRegionSplitter (void) const |
| |
| | ImageSource () |
| |
| virtual unsigned int | SplitRequestedRegion (unsigned int i, unsigned int num, OutputImageRegionType &splitRegion) |
| |
| virtual void | ThreadedGenerateData (const OutputImageRegionType &outputRegionForThread, ThreadIdType threadId) |
| |
| virtual | ~ImageSource () |
| |
| virtual void | AddInput (DataObject *input) |
| |
| virtual void | AddOutput (DataObject *output) |
| |
| virtual void | CacheInputReleaseDataFlags () |
| |
| virtual void | GenerateOutputInformation () |
| |
| virtual void | GenerateOutputRequestedRegion (DataObject *output) |
| |
virtual const
DataObjectPointerArraySizeType & | GetNumberOfRequiredOutputs () |
| |
| bool | IsIndexedInputName (const DataObjectIdentifierType &) const |
| |
| bool | IsIndexedOutputName (const DataObjectIdentifierType &) const |
| |
| | itkLegacyMacro (virtual void RemoveOutput(DataObject *output)) |
| |
| | itkLegacyMacro (void SetNumberOfOutputs(DataObjectPointerArraySizeType num)) |
| |
| | itkLegacyMacro (virtual void RemoveInput(DataObject *input)) |
| |
| | itkLegacyMacro (void SetNumberOfInputs(DataObjectPointerArraySizeType num)) |
| |
| DataObjectPointerArraySizeType | MakeIndexFromInputName (const DataObjectIdentifierType &name) const |
| |
| DataObjectPointerArraySizeType | MakeIndexFromOutputName (const DataObjectIdentifierType &name) const |
| |
| DataObjectIdentifierType | MakeNameFromInputIndex (DataObjectPointerArraySizeType idx) const |
| |
| DataObjectIdentifierType | MakeNameFromOutputIndex (DataObjectPointerArraySizeType idx) const |
| |
| | ProcessObject () |
| |
| virtual void | PropagateResetPipeline () |
| |
| virtual void | ReleaseInputs () |
| |
| virtual void | RemoveInput (const DataObjectIdentifierType &key) |
| |
| virtual void | RemoveInput (DataObjectPointerArraySizeType) |
| |
| virtual void | RemoveOutput (const DataObjectIdentifierType &key) |
| |
| virtual void | RemoveOutput (DataObjectPointerArraySizeType idx) |
| |
| virtual void | RestoreInputReleaseDataFlags () |
| |
| virtual void | SetInput (const DataObjectIdentifierType &key, DataObject *input) |
| |
| virtual void | SetNthInput (DataObjectPointerArraySizeType num, DataObject *input) |
| |
| virtual void | SetNthOutput (DataObjectPointerArraySizeType num, DataObject *output) |
| |
| void | SetNumberOfIndexedInputs (DataObjectPointerArraySizeType num) |
| |
| void | SetNumberOfIndexedOutputs (DataObjectPointerArraySizeType num) |
| |
| virtual void | SetNumberOfRequiredOutputs (DataObjectPointerArraySizeType _arg) |
| |
| virtual void | SetOutput (const DataObjectIdentifierType &key, DataObject *output) |
| |
| virtual void | SetPrimaryInput (DataObject *input) |
| |
| virtual void | SetPrimaryOutput (DataObject *output) |
| |
| virtual void | VerifyPreconditions () |
| |
| | ~ProcessObject () |
| |
| DataObject * | GetInput (const DataObjectIdentifierType &key) |
| |
| const DataObject * | GetInput (const DataObjectIdentifierType &key) const |
| |
| DataObject * | GetInput (DataObjectPointerArraySizeType idx) |
| |
| const DataObject * | GetInput (DataObjectPointerArraySizeType idx) const |
| |
| DataObject * | GetPrimaryInput () |
| |
| const DataObject * | GetPrimaryInput () const |
| |
| virtual void | SetPrimaryInputName (const DataObjectIdentifierType &key) |
| |
| virtual const char * | GetPrimaryInputName (void) const |
| |
| virtual void | SetNumberOfRequiredInputs (DataObjectPointerArraySizeType) |
| |
virtual const
DataObjectPointerArraySizeType & | GetNumberOfRequiredInputs () |
| |
| bool | AddRequiredInputName (const DataObjectIdentifierType &) |
| |
| bool | AddRequiredInputName (const DataObjectIdentifierType &, DataObjectPointerArraySizeType idx) |
| |
| bool | RemoveRequiredInputName (const DataObjectIdentifierType &) |
| |
| bool | IsRequiredInputName (const DataObjectIdentifierType &) const |
| |
| void | SetRequiredInputNames (const NameArray &) |
| |
| DataObject * | GetOutput (const DataObjectIdentifierType &key) |
| |
| const DataObject * | GetOutput (const DataObjectIdentifierType &key) const |
| |
| virtual void | SetPrimaryOutputName (const DataObjectIdentifierType &key) |
| |
| virtual const char * | GetPrimaryOutputName (void) const |
| |
| DataObject * | GetOutput (DataObjectPointerArraySizeType idx) |
| |
| const DataObject * | GetOutput (DataObjectPointerArraySizeType idx) const |
| |
| DataObject * | GetPrimaryOutput () |
| |
| const DataObject * | GetPrimaryOutput () const |
| |
| | Object () |
| |
| bool | PrintObservers (std::ostream &os, Indent indent) const |
| |
| virtual void | SetTimeStamp (const TimeStamp &time) |
| |
| virtual | ~Object () |
| |
| virtual LightObject::Pointer | InternalClone () const |
| |
| | LightObject () |
| |
| virtual void | PrintHeader (std::ostream &os, Indent indent) const |
| |
| virtual void | PrintTrailer (std::ostream &os, Indent indent) const |
| |
| virtual | ~LightObject () |
| |
|
| RealType | AddEuclideanUpdate (const RealType &a, const RealType &b) |
| |
| RealType | AddExponentialMapUpdate (const DiffusionTensor3D< RealValueType > &spdMatrix, const DiffusionTensor3D< RealValueType > &symMatrix) |
| |
| template<typename TensorValueT > |
| void | Compute3x3EigenAnalysis (const DiffusionTensor3D< TensorValueT > &spdMatrix, FixedArray< TensorValueT, 3 > &eigenVals, Matrix< TensorValueT, 3, 3 > &eigenVecs) |
| |
| void | ComputeLogMapAndWeightedSquaredGeodesicDifference (const DiffusionTensor3D< PixelValueType > &spdMatrixA, const DiffusionTensor3D< PixelValueType > &spdMatrixB, const RealArrayType &weight, bool useCachedComputations, SizeValueType cacheIndex, EigenValuesCacheType &eigenValsCache, EigenVectorsCacheType &eigenVecsCache, RealType &symMatrixLogMap, RealArrayType &geodesicDist) |
| |
| void | ComputeSignedEuclideanDifferenceAndWeightedSquaredNorm (const PixelType &a, const PixelType &b, const RealArrayType &weight, bool useCachedComputations, SizeValueType cacheIndex, EigenValuesCacheType &eigenValsCache, EigenVectorsCacheType &eigenVecsCache, RealType &diff, RealArrayType &norm) |
| |
| template<typename TInputImageType > |
| void | DispatchedArrayMinMax (const TInputImageType *img) |
| |
| template<typename TInputImageType > |
| void | DispatchedMinMax (const TInputImageType *img) |
| |
| template<typename TInputImageType > |
| void | DispatchedRiemannianMinMax (const TInputImageType *img) |
| |
| template<typename TInputImageType > |
| void | DispatchedVectorMinMax (const TInputImageType *img) |
| |
| void | operator= (const Self &) |
| |
| | PatchBasedDenoisingImageFilter (const Self &) |
| |
| virtual void | ResolveRiemannianMinMax () |
| |
| ThreadDataStruct | ThreadedRiemannianMinMax (const InputImageRegionType ®ionToProcess, const int, const InputImageType *img, ThreadDataStruct threadData) |
| |