|
| static constexpr unsigned int | ImageDimension = Superclass::ImageDimension |
| |
| static constexpr unsigned int | ImageDimension = InputImageType::ImageDimension |
| |
| static constexpr unsigned int | InputImageDimension = TInputImage::ImageDimension |
| |
| static constexpr unsigned int | OutputImageDimension = TOutputImage::ImageDimension |
| |
| static constexpr unsigned int | OutputImageDimension = TOutputImage::ImageDimension |
| |
| template<typename T , typename U = void> |
| using | DisableIfMultiComponent = typename std::enable_if< std::is_same< T, typename NumericTraits< T >::ValueType >::value, U > |
| |
| template<typename T , typename U = void> |
| using | EnableIfMultiComponent = typename std::enable_if<!std::is_same< T, typename NumericTraits< T >::ValueType >::value, U > |
| |
| static constexpr unsigned int | MaxSigmaUpdateIterations = 20 |
| |
| std::vector< ThreadDataStruct > | m_ThreadData |
| |
| OutputImageType::Pointer | m_UpdateBuffer |
| |
| unsigned int | m_NumPixelComponents { 0 } |
| |
| unsigned int | m_NumIndependentComponents { 0 } |
| |
| unsigned int | m_TotalNumberPixels { 0 } |
| |
| bool | m_UseSmoothDiscPatchWeights { true } |
| |
| bool | m_UseFastTensorComputations { true } |
| |
| RealArrayType | m_KernelBandwidthSigma |
| |
| bool | m_KernelBandwidthSigmaIsSet { false } |
| |
| RealArrayType | m_IntensityRescaleInvFactor |
| |
| PixelType | m_ZeroPixel |
| |
| PixelArrayType | m_ImageMin |
| |
| PixelArrayType | m_ImageMax |
| |
| double | m_KernelBandwidthFractionPixelsForEstimation { 0.20 } |
| |
| bool | m_ComputeConditionalDerivatives { false } |
| |
| double | m_MinSigma |
| |
| double | m_MinProbability |
| |
| unsigned int | m_SigmaUpdateDecimationFactor |
| |
| double | m_SigmaUpdateConvergenceTolerance { 0.01 } |
| |
| ShortArrayType | m_SigmaConverged |
| |
| double | m_KernelBandwidthMultiplicationFactor { 1.0 } |
| |
| RealType | m_NoiseSigma |
| |
| RealType | m_NoiseSigmaSquared |
| |
| bool | m_NoiseSigmaIsSet { false } |
| |
| BaseSamplerPointer | m_Sampler |
| |
| ListAdaptorType::Pointer | m_SearchSpaceList |
| |
| virtual void | SetUseSmoothDiscPatchWeights (bool _arg) |
| |
| virtual void | UseSmoothDiscPatchWeightsOn () |
| |
| virtual void | UseSmoothDiscPatchWeightsOff () |
| |
| virtual bool | GetUseSmoothDiscPatchWeights () const |
| |
| void | SetKernelBandwidthSigma (const RealArrayType &kernelSigma) |
| |
| virtual RealArrayType | GetKernelBandwidthSigma () const |
| |
| virtual void | SetKernelBandwidthFractionPixelsForEstimation (double _arg) |
| |
| virtual const double & | GetKernelBandwidthFractionPixelsForEstimation () const |
| |
| virtual void | SetComputeConditionalDerivatives (bool _arg) |
| |
| virtual void | ComputeConditionalDerivativesOn () |
| |
| virtual void | ComputeConditionalDerivativesOff () |
| |
| virtual bool | GetComputeConditionalDerivatives () const |
| |
| virtual void | SetUseFastTensorComputations (bool _arg) |
| |
| virtual void | UseFastTensorComputationsOn () |
| |
| virtual void | UseFastTensorComputationsOff () |
| |
| virtual bool | GetUseFastTensorComputations () const |
| |
| virtual void | SetKernelBandwidthMultiplicationFactor (double _arg) |
| |
| virtual const double & | GetKernelBandwidthMultiplicationFactor () const |
| |
| void | SetNoiseSigma (const RealType &sigma) |
| |
| virtual RealType | GetNoiseSigma () const |
| |
| virtual void | SetSampler (BaseSamplerType *_arg) |
| |
| virtual BaseSamplerType * | GetModifiableSampler () |
| |
| virtual const BaseSamplerType * | GetSampler () const |
| |
| virtual unsigned int | GetNumIndependentComponents () const |
| |
| | PatchBasedDenoisingImageFilter () |
| |
| | ~PatchBasedDenoisingImageFilter () override |
| |
| void | PrintSelf (std::ostream &os, Indent indent) const override |
| |
| virtual void | EmptyCaches () |
| |
| void | AllocateUpdateBuffer () override |
| |
| void | CopyInputToOutput () override |
| |
| void | GenerateInputRequestedRegion () override |
| |
| template<typename T > |
| DisableIfMultiComponent< T, T >::type | GetComponent (const T pix, unsigned int) const |
| |
| template<typename T > |
| EnableIfMultiComponent< T, typename NumericTraits< T >::ValueType >::type | GetComponent (const T &pix, unsigned int idx) const |
| |
| template<typename T > |
| void | SetComponent (T &pix, unsigned int, typename DisableIfMultiComponent< T, RealValueType >::type val) const |
| |
| template<typename T > |
| void | SetComponent (T &pix, unsigned int idx, typename EnableIfMultiComponent< T, RealValueType >::type val) const |
| |
| void | ComputeMinMax (const Image< DiffusionTensor3D< PixelValueType >, ImageDimension > *img) |
| |
| template<typename TImageType > |
| DisableIfMultiComponent< typename TImageType::PixelType >::type | ComputeMinMax (const TImageType *img) |
| |
| template<typename TImageType > |
| EnableIfMultiComponent< typename TImageType::PixelType >::type | ComputeMinMax (const TImageType *img) |
| |
| 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) |
| |
| template<typename PixelT > |
| void | ComputeDifferenceAndWeightedSquaredNorm (const PixelT &a, const PixelT &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) |
| |
| template<typename RealT > |
| RealType | AddUpdate (const RealT &a, const RealType &b) |
| |
| virtual void | EnforceConstraints () |
| |
| void | Initialize () override |
| |
| virtual void | InitializeKernelSigma () |
| |
| void | InitializePatchWeights () override |
| |
| virtual void | InitializePatchWeightsSmoothDisc () |
| |
| void | InitializeIteration () override |
| |
| void | ComputeKernelBandwidthUpdate () override |
| |
| virtual ThreadDataStruct | ThreadedComputeSigmaUpdate (const InputImageRegionType ®ionToProcess, const int, ThreadDataStruct threadData) |
| |
| virtual RealArrayType | ResolveSigmaUpdate () |
| |
| void | ComputeImageUpdate () override |
| |
| virtual ThreadDataStruct | ThreadedComputeImageUpdate (const InputImageRegionType ®ionToProcess, const int threadId, ThreadDataStruct threadData) |
| |
| virtual RealType | ComputeGradientJointEntropy (InstanceIdentifier id, typename ListAdaptorType::Pointer &inList, BaseSamplerPointer &sampler, ThreadDataStruct &threadData) |
| |
| void | ApplyUpdate () override |
| |
| virtual void | ThreadedApplyUpdate (const InputImageRegionType ®ionToProcess, const int) |
| |
| void | PostProcessOutput () override |
| |
| virtual void | SetThreadData (int threadId, const ThreadDataStruct &data) |
| |
| virtual ThreadDataStruct | GetThreadData (int threadId) |
| |
| static ITK_THREAD_RETURN_FUNCTION_CALL_CONVENTION | ComputeSigmaUpdateThreaderCallback (void *arg) |
| |
| static ITK_THREAD_RETURN_FUNCTION_CALL_CONVENTION | ComputeImageUpdateThreaderCallback (void *arg) |
| |
| static ITK_THREAD_RETURN_FUNCTION_CALL_CONVENTION | ApplyUpdateThreaderCallback (void *arg) |
| |
| static ITK_THREAD_RETURN_FUNCTION_CALL_CONVENTION | RiemannianMinMaxThreaderCallback (void *arg) |
| |
| template<typename TInputImageType > |
| void | DispatchedMinMax (const TInputImageType *img) |
| |
| template<typename TInputImageType > |
| void | DispatchedArrayMinMax (const TInputImageType *img) |
| |
| template<typename TInputImageType > |
| void | DispatchedVectorMinMax (const TInputImageType *img) |
| |
| template<typename TInputImageType > |
| void | DispatchedRiemannianMinMax (const TInputImageType *img) |
| |
| ThreadDataStruct | ThreadedRiemannianMinMax (const InputImageRegionType ®ionToProcess, const int, const InputImageType *img, ThreadDataStruct threadData) |
| |
| virtual void | ResolveRiemannianMinMax () |
| |
| void | ComputeSignedEuclideanDifferenceAndWeightedSquaredNorm (const PixelType &a, const PixelType &b, const RealArrayType &weight, bool useCachedComputations, SizeValueType cacheIndex, EigenValuesCacheType &eigenValsCache, EigenVectorsCacheType &eigenVecsCache, RealType &diff, RealArrayType &norm) |
| |
| 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) |
| |
| template<typename TensorValueT > |
| void | Compute3x3EigenAnalysis (const DiffusionTensor3D< TensorValueT > &spdMatrix, FixedArray< TensorValueT, 3 > &eigenVals, Matrix< TensorValueT, 3, 3 > &eigenVecs) |
| |
| RealType | AddEuclideanUpdate (const RealType &a, const RealType &b) |
| |
| RealType | AddExponentialMapUpdate (const DiffusionTensor3D< RealValueType > &spdMatrix, const DiffusionTensor3D< RealValueType > &symMatrix) |
| |
|
| using | InputToOutputRegionCopierType = ImageToImageFilterDetail::ImageRegionCopier< Self::OutputImageDimension, Self::InputImageDimension > |
| |
| using | OutputToInputRegionCopierType = ImageToImageFilterDetail::ImageRegionCopier< Self::InputImageDimension, Self::OutputImageDimension > |
| |
| | PatchBasedDenoisingBaseImageFilter () |
| |
| | ~PatchBasedDenoisingBaseImageFilter () override=default |
| |
| void | GenerateData () override |
| |
| virtual void | PreProcessInput () |
| |
| virtual bool | Halt () |
| |
| virtual bool | ThreadedHalt (void *) |
| |
| virtual void | SetElapsedIterations (unsigned int _arg) |
| |
| ComponentSpaceEnum | DetermineComponentSpace (const RGBPixel< PixelValueType > &) |
| |
| ComponentSpaceEnum | DetermineComponentSpace (const RGBAPixel< PixelValueType > &) |
| |
| ComponentSpaceEnum | DetermineComponentSpace (const DiffusionTensor3D< PixelValueType > &) |
| |
| template<typename PixelT > |
| ComponentSpaceEnum | DetermineComponentSpace (const PixelT &) |
| |
| virtual void | SetComponentSpace (const ComponentSpaceEnum _arg) |
| |
| virtual ComponentSpaceEnum | GetComponentSpace () const |
| |
| | ImageToImageFilter () |
| |
| | ~ImageToImageFilter () override=default |
| |
| void | VerifyInputInformation () ITKv5_CONST override |
| |
| virtual void | CallCopyOutputRegionToInputRegion (InputImageRegionType &destRegion, const OutputImageRegionType &srcRegion) |
| |
| virtual void | CallCopyInputRegionToOutputRegion (OutputImageRegionType &destRegion, const InputImageRegionType &srcRegion) |
| |
| void | PushBackInput (const DataObject *input) override |
| |
| void | PushFrontInput (const DataObject *input) override |
| |
| | ImageSource () |
| |
| | ~ImageSource () override=default |
| |
| void | ClassicMultiThread (ThreadFunctionType callbackFunction) |
| |
| virtual void | ThreadedGenerateData (const OutputImageRegionType &outputRegionForThread, ThreadIdType threadId) |
| |
| virtual void | DynamicThreadedGenerateData (const OutputImageRegionType &outputRegionForThread) |
| |
| virtual void | AllocateOutputs () |
| |
| virtual void | BeforeThreadedGenerateData () |
| |
| virtual void | AfterThreadedGenerateData () |
| |
| virtual const ImageRegionSplitterBase * | GetImageRegionSplitter () const |
| |
| virtual unsigned int | SplitRequestedRegion (unsigned int i, unsigned int pieces, OutputImageRegionType &splitRegion) |
| |
| virtual bool | GetDynamicMultiThreading () const |
| |
| virtual void | SetDynamicMultiThreading (bool _arg) |
| |
| virtual void | DynamicMultiThreadingOn () |
| |
| virtual void | DynamicMultiThreadingOff () |
| |
| | ProcessObject () |
| |
| | ~ProcessObject () override |
| |
| DataObject * | GetInput (const DataObjectIdentifierType &key) |
| |
| const DataObject * | GetInput (const DataObjectIdentifierType &key) const |
| |
| DataObject * | GetInput (DataObjectPointerArraySizeType idx) |
| |
| const DataObject * | GetInput (DataObjectPointerArraySizeType idx) const |
| |
| virtual void | SetInput (const DataObjectIdentifierType &key, DataObject *input) |
| |
| virtual void | SetNthInput (DataObjectPointerArraySizeType num, DataObject *input) |
| |
| virtual void | AddInput (DataObject *input) |
| |
| virtual void | RemoveInput (const DataObjectIdentifierType &key) |
| |
| virtual void | RemoveInput (DataObjectPointerArraySizeType) |
| |
| DataObject * | GetPrimaryInput () |
| |
| const DataObject * | GetPrimaryInput () const |
| |
| virtual void | SetPrimaryInputName (const DataObjectIdentifierType &key) |
| |
| virtual const char * | GetPrimaryInputName () const |
| |
| virtual void | SetPrimaryInput (DataObject *input) |
| |
| void | SetNumberOfIndexedInputs (DataObjectPointerArraySizeType num) |
| |
| virtual void | SetNumberOfRequiredInputs (DataObjectPointerArraySizeType) |
| |
| virtual const DataObjectPointerArraySizeType & | GetNumberOfRequiredInputs () const |
| |
| bool | RemoveRequiredInputName (const DataObjectIdentifierType &) |
| |
| bool | IsRequiredInputName (const DataObjectIdentifierType &) const |
| |
| void | SetRequiredInputNames (const NameArray &) |
| |
| bool | AddRequiredInputName (const DataObjectIdentifierType &) |
| |
| bool | AddRequiredInputName (const DataObjectIdentifierType &, DataObjectPointerArraySizeType idx) |
| |
| void | AddOptionalInputName (const DataObjectIdentifierType &) |
| |
| void | AddOptionalInputName (const DataObjectIdentifierType &, DataObjectPointerArraySizeType idx) |
| |
| DataObject * | GetOutput (const DataObjectIdentifierType &key) |
| |
| const DataObject * | GetOutput (const DataObjectIdentifierType &key) const |
| |
| virtual void | SetPrimaryOutputName (const DataObjectIdentifierType &key) |
| |
| virtual const char * | GetPrimaryOutputName () const |
| |
| DataObject * | GetOutput (DataObjectPointerArraySizeType idx) |
| |
| const DataObject * | GetOutput (DataObjectPointerArraySizeType idx) const |
| |
| virtual void | SetOutput (const DataObjectIdentifierType &key, DataObject *output) |
| |
| virtual void | RemoveOutput (const DataObjectIdentifierType &key) |
| |
| DataObject * | GetPrimaryOutput () |
| |
| const DataObject * | GetPrimaryOutput () const |
| |
| virtual void | SetPrimaryOutput (DataObject *output) |
| |
| virtual void | SetNthOutput (DataObjectPointerArraySizeType num, DataObject *output) |
| |
| virtual void | AddOutput (DataObject *output) |
| |
| virtual void | RemoveOutput (DataObjectPointerArraySizeType idx) |
| |
| virtual void | SetNumberOfRequiredOutputs (DataObjectPointerArraySizeType _arg) |
| |
| virtual const DataObjectPointerArraySizeType & | GetNumberOfRequiredOutputs () const |
| |
| void | SetNumberOfIndexedOutputs (DataObjectPointerArraySizeType num) |
| |
| DataObjectIdentifierType | MakeNameFromInputIndex (DataObjectPointerArraySizeType idx) const |
| |
| DataObjectIdentifierType | MakeNameFromOutputIndex (DataObjectPointerArraySizeType idx) const |
| |
| DataObjectPointerArraySizeType | MakeIndexFromInputName (const DataObjectIdentifierType &name) const |
| |
| DataObjectPointerArraySizeType | MakeIndexFromOutputName (const DataObjectIdentifierType &name) const |
| |
| bool | IsIndexedInputName (const DataObjectIdentifierType &) const |
| |
| bool | IsIndexedOutputName (const DataObjectIdentifierType &) const |
| |
| virtual void | VerifyPreconditions () ITKv5_CONST |
| |
| virtual void | GenerateOutputRequestedRegion (DataObject *output) |
| |
| virtual void | GenerateOutputInformation () |
| |
| virtual void | PropagateResetPipeline () |
| |
| virtual void | ReleaseInputs () |
| |
| virtual void | CacheInputReleaseDataFlags () |
| |
| virtual void | RestoreInputReleaseDataFlags () |
| |
| virtual bool | GetThreaderUpdateProgress () const |
| |
| virtual void | ThreaderUpdateProgressOn () |
| |
| virtual void | ThreaderUpdateProgressOff () |
| |
| virtual void | SetThreaderUpdateProgress (bool arg) |
| |
| | Object () |
| |
| | ~Object () override |
| |
| bool | PrintObservers (std::ostream &os, Indent indent) const |
| |
| virtual void | SetTimeStamp (const TimeStamp &time) |
| |
| 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 () |
| |
| static const ImageRegionSplitterBase * | GetGlobalDefaultSplitter () |
| |
| static ITK_THREAD_RETURN_FUNCTION_CALL_CONVENTION | ThreaderCallback (void *arg) |
| |
| static constexpr float | progressFixedToFloat (uint32_t fixed) |
| |
| static uint32_t | progressFloatToFixed (float f) |
| |
| const InputImageType * | m_InputImage |
| |
| OutputImageType * | m_OutputImage |
| |
| bool | m_DynamicMultiThreading |
| |
| bool | m_Updating |
| |
| TimeStamp | m_OutputInformationMTime |
| |
| std::atomic< int > | m_ReferenceCount |
| |
template<typename TInputImage, typename 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 62 of file itkPatchBasedDenoisingImageFilter.h.