ITK
4.2.0
Insight Segmentation and Registration Toolkit
|
#include <itkPatchBasedDenoisingImageFilter.h>
Classes | |
struct | ThreadDataStruct |
struct | ThreadFilterStruct |
Static Public Member Functions | |
static Pointer | New () |
Static Public Attributes | |
static const unsigned int | ImageDimension = Superclass::ImageDimension |
static const unsigned int | MaxSigmaUpdateIterations = 20 |
Static Public Attributes inherited from itk::PatchBasedDenoisingBaseImageFilter< TInputImage, TOutputImage > | |
Static Public Attributes inherited from itk::ImageToImageFilter< TInputImage, TOutputImage > | |
static const unsigned int | InputImageDimension = TInputImage::ImageDimension |
static const unsigned int | OutputImageDimension = TOutputImage::ImageDimension |
Static Public Attributes inherited from itk::ImageSource< TOutputImage > |
Private Member Functions | |
RealType | AddEuclideanUpdate (const RealType &a, const RealType &b) |
RealType | AddExponentialMapUpdate (const DiffusionTensor3D< RealValueType > &spdMatrix, const DiffusionTensor3D< RealValueType > &symMatrix) |
void | ComputeLogMapAndWeightedSquaredGeodesicDifference (const DiffusionTensor3D< PixelValueType > &spdMatrixA, const DiffusionTensor3D< PixelValueType > &spdMatrixB, const RealArrayType &weight, RealType &symMatrixLogMap, RealArrayType &geodesicDist) |
void | ComputeSignedEuclideanDifferenceAndWeightedSquaredNorm (const PixelType &a, const PixelType &b, const RealArrayType &weight, 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) |
Static Private Member Functions | |
static ITK_THREAD_RETURN_TYPE | ApplyUpdateThreaderCallback (void *arg) |
static ITK_THREAD_RETURN_TYPE | ComputeImageUpdateThreaderCallback (void *arg) |
static ITK_THREAD_RETURN_TYPE | ComputeSigmaUpdateThreaderCallback (void *arg) |
static ITK_THREAD_RETURN_TYPE | RiemannianMinMaxThreaderCallback (void *arg) |
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.
Definition at line 59 of file itkPatchBasedDenoisingImageFilter.h.
typedef BaseSamplerType::Pointer itk::PatchBasedDenoisingImageFilter< TInputImage, TOutputImage >::BaseSamplerPointer |
Definition at line 112 of file itkPatchBasedDenoisingImageFilter.h.
typedef itk::Statistics::RegionConstrainedSubsampler< PatchSampleType, InputImageRegionType > itk::PatchBasedDenoisingImageFilter< TInputImage, TOutputImage >::BaseSamplerType |
Type definitions for delegate classes.
Definition at line 111 of file itkPatchBasedDenoisingImageFilter.h.
typedef SmartPointer<const Self> itk::PatchBasedDenoisingImageFilter< TInputImage, TOutputImage >::ConstPointer |
Reimplemented from itk::PatchBasedDenoisingBaseImageFilter< TInputImage, TOutputImage >.
Definition at line 67 of file itkPatchBasedDenoisingImageFilter.h.
typedef Superclass::InputImagePatchIterator itk::PatchBasedDenoisingImageFilter< TInputImage, TOutputImage >::InputImagePatchIterator |
Reimplemented from itk::PatchBasedDenoisingBaseImageFilter< TInputImage, TOutputImage >.
Definition at line 105 of file itkPatchBasedDenoisingImageFilter.h.
typedef ImageRegionConstIterator<InputImageType> itk::PatchBasedDenoisingImageFilter< TInputImage, TOutputImage >::InputImageRegionConstIteratorType |
Definition at line 89 of file itkPatchBasedDenoisingImageFilter.h.
typedef InputImageType::RegionType itk::PatchBasedDenoisingImageFilter< TInputImage, TOutputImage >::InputImageRegionType |
Type definition for the input image region and size type.
Reimplemented from itk::ImageToImageFilter< TInputImage, TOutputImage >.
Definition at line 85 of file itkPatchBasedDenoisingImageFilter.h.
typedef Superclass::InputImageType itk::PatchBasedDenoisingImageFilter< TInputImage, TOutputImage >::InputImageType |
Type definition for the input image.
Reimplemented from itk::PatchBasedDenoisingBaseImageFilter< TInputImage, TOutputImage >.
Definition at line 74 of file itkPatchBasedDenoisingImageFilter.h.
typedef BaseSamplerType::InstanceIdentifier itk::PatchBasedDenoisingImageFilter< TInputImage, TOutputImage >::InstanceIdentifier |
Definition at line 113 of file itkPatchBasedDenoisingImageFilter.h.
typedef Superclass::ListAdaptorType itk::PatchBasedDenoisingImageFilter< TInputImage, TOutputImage >::ListAdaptorType |
Type definition for patch weights type.
Reimplemented from itk::PatchBasedDenoisingBaseImageFilter< TInputImage, TOutputImage >.
Definition at line 103 of file itkPatchBasedDenoisingImageFilter.h.
typedef Superclass::OutputImagePointer itk::PatchBasedDenoisingImageFilter< TInputImage, TOutputImage >::OutputImagePointer |
Reimplemented from itk::ImageSource< TOutputImage >.
Definition at line 68 of file itkPatchBasedDenoisingImageFilter.h.
typedef ImageRegionIterator<OutputImageType> itk::PatchBasedDenoisingImageFilter< TInputImage, TOutputImage >::OutputImageRegionIteratorType |
Type definition for the input image region iterator
Definition at line 88 of file itkPatchBasedDenoisingImageFilter.h.
typedef Superclass::OutputImageType itk::PatchBasedDenoisingImageFilter< TInputImage, TOutputImage >::OutputImageType |
Some convenient typedefs.
Reimplemented from itk::PatchBasedDenoisingBaseImageFilter< TInputImage, TOutputImage >.
Definition at line 78 of file itkPatchBasedDenoisingImageFilter.h.
typedef Superclass::PatchRadiusType itk::PatchBasedDenoisingImageFilter< TInputImage, TOutputImage >::PatchRadiusType |
Reimplemented from itk::PatchBasedDenoisingBaseImageFilter< TInputImage, TOutputImage >.
Definition at line 104 of file itkPatchBasedDenoisingImageFilter.h.
typedef ListAdaptorType itk::PatchBasedDenoisingImageFilter< TInputImage, TOutputImage >::PatchSampleType |
Definition at line 106 of file itkPatchBasedDenoisingImageFilter.h.
typedef Superclass::PatchWeightsType itk::PatchBasedDenoisingImageFilter< TInputImage, TOutputImage >::PatchWeightsType |
This data structure type is used to store the weights (mask) for pixels in a patch in order to make the patch more isotropic and less rectangular.
Reimplemented from itk::PatchBasedDenoisingBaseImageFilter< TInputImage, TOutputImage >.
Definition at line 107 of file itkPatchBasedDenoisingImageFilter.h.
typedef Array<PixelValueType> itk::PatchBasedDenoisingImageFilter< TInputImage, TOutputImage >::PixelArrayType |
Definition at line 98 of file itkPatchBasedDenoisingImageFilter.h.
typedef Superclass::PixelType itk::PatchBasedDenoisingImageFilter< TInputImage, TOutputImage >::PixelType |
Type definition for the input and output pixel types. Output pixel type will be used in computations.
Reimplemented from itk::PatchBasedDenoisingBaseImageFilter< TInputImage, TOutputImage >.
Definition at line 93 of file itkPatchBasedDenoisingImageFilter.h.
typedef Superclass::PixelValueType itk::PatchBasedDenoisingImageFilter< TInputImage, TOutputImage >::PixelValueType |
Reimplemented from itk::PatchBasedDenoisingBaseImageFilter< TInputImage, TOutputImage >.
Definition at line 94 of file itkPatchBasedDenoisingImageFilter.h.
typedef SmartPointer<Self> itk::PatchBasedDenoisingImageFilter< TInputImage, TOutputImage >::Pointer |
Reimplemented from itk::PatchBasedDenoisingBaseImageFilter< TInputImage, TOutputImage >.
Definition at line 66 of file itkPatchBasedDenoisingImageFilter.h.
typedef Array<RealValueType> itk::PatchBasedDenoisingImageFilter< TInputImage, TOutputImage >::RealArrayType |
Definition at line 99 of file itkPatchBasedDenoisingImageFilter.h.
typedef NumericTraits< PixelType >::RealType itk::PatchBasedDenoisingImageFilter< TInputImage, TOutputImage >::RealType |
Definition at line 96 of file itkPatchBasedDenoisingImageFilter.h.
typedef NumericTraits< PixelValueType >::RealType itk::PatchBasedDenoisingImageFilter< TInputImage, TOutputImage >::RealValueType |
Definition at line 97 of file itkPatchBasedDenoisingImageFilter.h.
typedef PatchBasedDenoisingImageFilter itk::PatchBasedDenoisingImageFilter< TInputImage, TOutputImage >::Self |
Standard class typedefs.
Reimplemented from itk::PatchBasedDenoisingBaseImageFilter< TInputImage, TOutputImage >.
Definition at line 64 of file itkPatchBasedDenoisingImageFilter.h.
typedef Array<unsigned short> itk::PatchBasedDenoisingImageFilter< TInputImage, TOutputImage >::ShortArrayType |
Definition at line 100 of file itkPatchBasedDenoisingImageFilter.h.
typedef PatchBasedDenoisingBaseImageFilter<TInputImage, TOutputImage> itk::PatchBasedDenoisingImageFilter< TInputImage, TOutputImage >::Superclass |
Reimplemented from itk::PatchBasedDenoisingBaseImageFilter< TInputImage, TOutputImage >.
Definition at line 65 of file itkPatchBasedDenoisingImageFilter.h.
|
protected |
|
inlineprotected |
Definition at line 187 of file itkPatchBasedDenoisingImageFilter.h.
|
private |
|
private |
|
private |
Returns the Exp map
|
inlineprotected |
Update a by adding b. In Riemannian space, b is in the tangent space of a.
Definition at line 310 of file itkPatchBasedDenoisingImageFilter.h.
|
inlineprotected |
Update a by adding b. In Riemannian space, b is in the tangent space of a.
Definition at line 323 of file itkPatchBasedDenoisingImageFilter.h.
|
protectedvirtual |
Allocate memory for a temporary update container in the subclass
Implements itk::PatchBasedDenoisingBaseImageFilter< TInputImage, TOutputImage >.
|
protectedvirtual |
Perform one iteration of image denoising.
Implements itk::PatchBasedDenoisingBaseImageFilter< TInputImage, TOutputImage >.
|
staticprivate |
This callback method uses ImageSource::SplitRequestedRegion to acquire a region which it then passes to ThreadedApplyUpdate for processing.
|
virtual |
Set/Get flag indicating whether conditional derivatives should be used estimating sigma.
|
virtual |
Set/Get flag indicating whether conditional derivatives should be used estimating sigma.
|
inlineprotected |
Compute the signed difference a-b and the weighted squared distance between a and b. Do the computation in either Euclidean or Riemannian space depending on pixel type.
Definition at line 283 of file itkPatchBasedDenoisingImageFilter.h.
|
inlineprotected |
Compute the signed difference a-b and the weighted squared distance between a and b. Do the computation in either Euclidean or Riemannian space depending on pixel type.
Definition at line 298 of file itkPatchBasedDenoisingImageFilter.h.
|
protectedvirtual |
|
protectedvirtual |
Perform one iteration of image denoising.
Implements itk::PatchBasedDenoisingBaseImageFilter< TInputImage, TOutputImage >.
|
staticprivate |
This callback method uses ImageSource::SplitRequestedRegion to acquire a region which it then passes to ComputeImageUpdate for processing.
|
protectedvirtual |
Automatically estimate kernel bandwidth from the image data.
Implements itk::PatchBasedDenoisingBaseImageFilter< TInputImage, TOutputImage >.
|
private |
Returns the Log map in the tangent space of spdMatrixA.
|
inlineprotected |
Compute the Minimum and Maximum pixel in the image for each independent component
Definition at line 249 of file itkPatchBasedDenoisingImageFilter.h.
|
inlineprotected |
Definition at line 265 of file itkPatchBasedDenoisingImageFilter.h.
|
inlineprotected |
Definition at line 273 of file itkPatchBasedDenoisingImageFilter.h.
|
staticprivate |
This callback method uses ImageSource::SplitRequestedRegion to acquire an output region that it passes to ComputeSigma for processing.
|
private |
|
protectedvirtual |
|
virtual |
Create an object from an instance, potentially deferring to a factory. This method allows you to create an instance of an object that is exactly the same type as the referring object. This is useful in cases where an object has been cast back to a base class.
Reimplemented from itk::Object.
|
private |
|
private |
|
private |
|
private |
|
protectedvirtual |
|
protectedvirtual |
What is the input requested region that is required to produce the output requested region? The base assumption for image processing filters is that the input requested region can be set to match the output requested region. If a filter requires more input (for instance a filter that uses neighborhoods needs more input than output to avoid introducing artificial boundary conditions) or less input (for instance a magnify filter) will have to override this method. In doing so, it should call its superclass' implementation as its first step. Note that imaging filters operate differently than the classes to this point in the class hierarchy. Up till now, the base assumption has been that the largest possible region will be requested of the input.
This implementation of GenerateInputRequestedRegion() only processes the inputs that are a subclass of the ImageBase<InputImageDimension>. If an input is another type of DataObject (including an Image of a different dimension), they are skipped by this method. The subclasses of ImageToImageFilter are responsible for providing an implementation of GenerateInputRequestedRegion() when there are multiple inputs of different types.
Reimplemented from itk::PatchBasedDenoisingBaseImageFilter< TInputImage, TOutputImage >.
|
inlineprotected |
A method to generically get a component.
The same function name can be used to generically access for scalars and array-like types. For scalar types the idx parameter is ignored.
Definition at line 207 of file itkPatchBasedDenoisingImageFilter.h.
|
inlineprotected |
Definition at line 222 of file itkPatchBasedDenoisingImageFilter.h.
|
virtual |
Set/Get flag indicating whether conditional derivatives should be used estimating sigma.
|
virtual |
Set/Get the fraction of the image to use for sigma estimation. To reduce the computational burden for computing sigma, a small random fraction of the image pixels can be used.
|
virtual |
Set/Get initial sigma estimate. To prevent the class from automatically modifying this estimate, set DoKernelBandwidthEstimation to false in the base class.
|
virtual |
Run-time type information (and related methods).
Reimplemented from itk::PatchBasedDenoisingBaseImageFilter< TInputImage, TOutputImage >.
|
virtual |
Set/Get the noise sigma. Used by the noise model where appropriate, defaults to 5% of the image intensity range
|
virtual |
Set/Get the class used for creating a subsample of patches.
|
virtual |
Set/Get the sigma multiplication factor used to modify the automatically-estimated sigma. At times, it may be desirable to modify the value of the automatically-estimated sigma. Typically, this number isn't very far from 1. Note: This is used only when DoKernelBandwidthEstimation is True/On.
|
protectedvirtual |
|
virtual |
Set/Get flag indicating whether smooth-disc patch weights should be used. If this flag is true, the smooth-disc patch weights will override any weights provided via the SetPatchWeights method.
|
protectedvirtual |
Allocate memory and initialize patch weights.
Reimplemented from itk::PatchBasedDenoisingBaseImageFilter< TInputImage, TOutputImage >.
|
protectedvirtual |
Reimplemented from itk::PatchBasedDenoisingBaseImageFilter< TInputImage, TOutputImage >.
|
protectedvirtual |
|
protectedvirtual |
Allocate memory and initialize patch weights.
Reimplemented from itk::PatchBasedDenoisingBaseImageFilter< TInputImage, TOutputImage >.
|
protectedvirtual |
|
static |
Method for creation through the object factory.
Reimplemented from itk::Object.
|
private |
PushBackInput(), PushFronInput() in the public section force the input to be the type expected by an ImageToImageFilter. However, these methods end of "hiding" the versions from the superclass (ProcessObject) whose arguments are DataObjects. Here, we re-expose the versions from ProcessObject to avoid warnings about hiding methods from the superclass.
Reimplemented from itk::PatchBasedDenoisingBaseImageFilter< TInputImage, TOutputImage >.
|
protectedvirtual |
Reimplemented from itk::PatchBasedDenoisingBaseImageFilter< TInputImage, TOutputImage >.
|
protectedvirtual |
Methods invoked by Print() to print information about the object including superclasses. Typically not called by the user (use Print() instead) but used in the hierarchical print process to combine the output of several classes.
Reimplemented from itk::PatchBasedDenoisingBaseImageFilter< TInputImage, TOutputImage >.
|
privatevirtual |
|
protectedvirtual |
|
staticprivate |
This callback method uses ImageSource::SplitRequestedRegion to acquire a region which it then passes to ThreadedRiemannianMinMax for processing.
|
inlineprotected |
A method to generically set a component.
Definition at line 231 of file itkPatchBasedDenoisingImageFilter.h.
|
inlineprotected |
Definition at line 239 of file itkPatchBasedDenoisingImageFilter.h.
|
virtual |
Set/Get flag indicating whether conditional derivatives should be used estimating sigma.
|
virtual |
Set/Get the fraction of the image to use for sigma estimation. To reduce the computational burden for computing sigma, a small random fraction of the image pixels can be used.
|
virtual |
Set/Get initial sigma estimate. To prevent the class from automatically modifying this estimate, set DoKernelBandwidthEstimation to false in the base class.
void itk::PatchBasedDenoisingImageFilter< TInputImage, TOutputImage >::SetNoiseSigma | ( | const RealType & | sigma | ) |
Set/Get the noise sigma. Used by the noise model where appropriate, defaults to 5% of the image intensity range
|
virtual |
Set/Get the class used for creating a subsample of patches.
|
virtual |
Set/Get the sigma multiplication factor used to modify the automatically-estimated sigma. At times, it may be desirable to modify the value of the automatically-estimated sigma. Typically, this number isn't very far from 1. Note: This is used only when DoKernelBandwidthEstimation is True/On.
|
protectedvirtual |
|
virtual |
Set/Get flag indicating whether smooth-disc patch weights should be used. If this flag is true, the smooth-disc patch weights will override any weights provided via the SetPatchWeights method.
|
protectedvirtual |
|
protectedvirtual |
|
protectedvirtual |
|
private |
|
virtual |
Set/Get flag indicating whether smooth-disc patch weights should be used. If this flag is true, the smooth-disc patch weights will override any weights provided via the SetPatchWeights method.
|
virtual |
Set/Get flag indicating whether smooth-disc patch weights should be used. If this flag is true, the smooth-disc patch weights will override any weights provided via the SetPatchWeights method.
|
static |
Image dimension, assumed to be the same for input and output data
Reimplemented from itk::PatchBasedDenoisingBaseImageFilter< TInputImage, TOutputImage >.
Definition at line 82 of file itkPatchBasedDenoisingImageFilter.h.
|
protected |
Definition at line 385 of file itkPatchBasedDenoisingImageFilter.h.
|
protected |
Definition at line 384 of file itkPatchBasedDenoisingImageFilter.h.
|
protected |
Definition at line 379 of file itkPatchBasedDenoisingImageFilter.h.
|
protected |
Definition at line 383 of file itkPatchBasedDenoisingImageFilter.h.
|
protected |
Definition at line 382 of file itkPatchBasedDenoisingImageFilter.h.
|
protected |
Definition at line 380 of file itkPatchBasedDenoisingImageFilter.h.
|
protected |
Definition at line 387 of file itkPatchBasedDenoisingImageFilter.h.
|
protected |
Definition at line 386 of file itkPatchBasedDenoisingImageFilter.h.
|
protected |
Definition at line 393 of file itkPatchBasedDenoisingImageFilter.h.
|
protected |
Definition at line 395 of file itkPatchBasedDenoisingImageFilter.h.
|
protected |
Definition at line 394 of file itkPatchBasedDenoisingImageFilter.h.
|
protected |
Definition at line 374 of file itkPatchBasedDenoisingImageFilter.h.
|
protected |
Definition at line 373 of file itkPatchBasedDenoisingImageFilter.h.
|
protected |
Definition at line 397 of file itkPatchBasedDenoisingImageFilter.h.
|
protected |
Definition at line 398 of file itkPatchBasedDenoisingImageFilter.h.
|
protected |
Definition at line 390 of file itkPatchBasedDenoisingImageFilter.h.
|
protected |
Definition at line 391 of file itkPatchBasedDenoisingImageFilter.h.
|
protected |
Definition at line 389 of file itkPatchBasedDenoisingImageFilter.h.
|
protected |
Definition at line 388 of file itkPatchBasedDenoisingImageFilter.h.
|
protected |
Definition at line 368 of file itkPatchBasedDenoisingImageFilter.h.
|
protected |
Definition at line 375 of file itkPatchBasedDenoisingImageFilter.h.
|
protected |
The buffer that holds the updates for an iteration of the algorithm.
Definition at line 371 of file itkPatchBasedDenoisingImageFilter.h.
|
protected |
Definition at line 377 of file itkPatchBasedDenoisingImageFilter.h.
|
protected |
Definition at line 381 of file itkPatchBasedDenoisingImageFilter.h.
|
static |
Maximum number of Newton-Raphson iterations for sigma update.
Definition at line 161 of file itkPatchBasedDenoisingImageFilter.h.