SimpleITK
1.2.4
|
The Wiener deconvolution image filter is designed to restore an image convolved with a blurring kernel while keeping noise enhancement to a minimum. More...
#include <sitkWienerDeconvolutionImageFilter.h>
Public Types | |
enum | BoundaryConditionType { ZERO_PAD, ZERO_FLUX_NEUMANN_PAD, PERIODIC_PAD } |
enum | OutputRegionModeType { SAME, VALID } |
typedef BasicPixelIDTypeList | PixelIDTypeList |
typedef WienerDeconvolutionImageFilter | Self |
Public Types inherited from itk::simple::ImageFilter< 2 > | |
typedef ImageFilter | Self |
Public Types inherited from itk::simple::ProcessObject | |
typedef ProcessObject | Self |
Public Member Functions | |
Image | Execute (const Image &image1, const Image &image2) |
Image | Execute (const Image &image1, const Image &image2, double noiseVariance, bool normalize, WienerDeconvolutionImageFilter::BoundaryConditionType boundaryCondition, WienerDeconvolutionImageFilter::OutputRegionModeType outputRegionMode) |
BoundaryConditionType | GetBoundaryCondition () const |
std::string | GetName () const |
double | GetNoiseVariance () const |
bool | GetNormalize () const |
OutputRegionModeType | GetOutputRegionMode () const |
Self & | NormalizeOff () |
Self & | NormalizeOn () |
Self & | SetBoundaryCondition (BoundaryConditionType BoundaryCondition) |
Self & | SetNoiseVariance (double NoiseVariance) |
Self & | SetNormalize (bool Normalize) |
Self & | SetOutputRegionMode (OutputRegionModeType OutputRegionMode) |
std::string | ToString () const |
WienerDeconvolutionImageFilter () | |
virtual | ~WienerDeconvolutionImageFilter () |
Public Member Functions inherited from itk::simple::ImageFilter< 2 > | |
ImageFilter () | |
virtual | ~ImageFilter ()=0 |
Public Member Functions inherited from itk::simple::ProcessObject | |
virtual void | Abort () |
virtual int | AddCommand (itk::simple::EventEnum event, itk::simple::Command &cmd) |
Add a Command Object to observer the event. More... | |
virtual float | GetProgress () const |
An Active Measurement of the progress of execution. More... | |
virtual bool | HasCommand (itk::simple::EventEnum event) const |
Query of this object has any registered commands for event. More... | |
ProcessObject () | |
virtual void | RemoveAllCommands () |
Remove all registered commands. More... | |
virtual | ~ProcessObject () |
virtual void | DebugOn () |
virtual void | DebugOff () |
virtual bool | GetDebug () const |
virtual void | SetDebug (bool debugFlag) |
virtual void | SetNumberOfThreads (unsigned int n) |
virtual unsigned int | GetNumberOfThreads () const |
Private Types | |
typedef Image(Self::* | MemberFunctionType) (const Image &image1, const Image &image2) |
Private Member Functions | |
template<class TImageType > | |
Image | ExecuteInternal (const Image &image1, const Image &image2) |
Private Attributes | |
BoundaryConditionType | m_BoundaryCondition |
nsstd::auto_ptr< detail::MemberFunctionFactory< MemberFunctionType > > | m_MemberFactory |
double | m_NoiseVariance |
bool | m_Normalize |
OutputRegionModeType | m_OutputRegionMode |
Friends | |
struct | detail::MemberFunctionAddressor< MemberFunctionType > |
Additional Inherited Members | |
Static Public Member Functions inherited from itk::simple::ProcessObject | |
static bool | GetGlobalDefaultDebug () |
static void | GlobalDefaultDebugOff () |
static void | GlobalDefaultDebugOn () |
static void | SetGlobalDefaultDebug (bool debugFlag) |
static void | GlobalWarningDisplayOn () |
static void | GlobalWarningDisplayOff () |
static void | SetGlobalWarningDisplay (bool flag) |
static bool | GetGlobalWarningDisplay () |
static void | SetGlobalDefaultNumberOfThreads (unsigned int n) |
static unsigned int | GetGlobalDefaultNumberOfThreads () |
static double | GetGlobalDefaultCoordinateTolerance () |
Access the global tolerance to determine congruent spaces. More... | |
static void | SetGlobalDefaultCoordinateTolerance (double) |
Access the global tolerance to determine congruent spaces. More... | |
static double | GetGlobalDefaultDirectionTolerance () |
Access the global tolerance to determine congruent spaces. More... | |
static void | SetGlobalDefaultDirectionTolerance (double) |
Access the global tolerance to determine congruent spaces. More... | |
Protected Member Functions inherited from itk::simple::ProcessObject | |
virtual unsigned long | AddITKObserver (const itk::EventObject &, itk::Command *) |
virtual itk::ProcessObject * | GetActiveProcess () |
virtual void | OnActiveProcessDelete () |
virtual void | onCommandDelete (const itk::simple::Command *cmd) SITK_NOEXCEPT |
virtual void | PreUpdate (itk::ProcessObject *p) |
virtual void | RemoveITKObserver (EventCommand &e) |
Protected Member Functions inherited from itk::simple::NonCopyable | |
NonCopyable () | |
Static Protected Member Functions inherited from itk::simple::ImageFilter< 2 > | |
static void | FixNonZeroIndex (TImageType *img) |
Static Protected Member Functions inherited from itk::simple::ProcessObject | |
template<class TImageType > | |
static TImageType::ConstPointer | CastImageToITK (const Image &img) |
template<class TImageType > | |
static Image | CastITKToImage (TImageType *img) |
template<class TPixelType , unsigned int VImageDimension, unsigned int VLength, template< typename, unsigned int > class TVector> | |
static Image | CastITKToImage (itk::Image< TVector< TPixelType, VLength >, VImageDimension > *img) |
static const itk::EventObject & | GetITKEventObject (EventEnum e) |
template<typename T > | |
static std::ostream & | ToStringHelper (std::ostream &os, const T &v) |
static std::ostream & | ToStringHelper (std::ostream &os, const char &v) |
static std::ostream & | ToStringHelper (std::ostream &os, const signed char &v) |
static std::ostream & | ToStringHelper (std::ostream &os, const unsigned char &v) |
The Wiener deconvolution image filter is designed to restore an image convolved with a blurring kernel while keeping noise enhancement to a minimum.
The Wiener filter aims to minimize noise enhancement induced by frequencies with low signal-to-noise ratio. The Wiener filter kernel is defined in the frequency domain as where is the Fourier transform of the blurring kernel with which the original image was convolved and the signal-to-noise ratio . is defined by where is the power spectral density of the uncorrupted signal and is the power spectral density of the noise. When applied to the input blurred image, this filter produces an estimate of the true underlying signal that minimizes the expected error between and .
This filter requires two inputs, the image to be deconvolved and the blurring kernel. These two inputs can be set using the methods SetInput() and SetKernelImage() , respectively.
The power spectral densities of the signal and noise are typically unavailable for a given problem. In particular, cannot be computed from because this unknown signal is precisely the signal that this filter aims to recover. Nevertheless, it is common for the noise to have a power spectral density that is flat or decreasing significantly more slowly than the power spectral density of a typical image as the frequency increases. Hence, can typically be approximated with a constant, and this filter makes this assumption (see the NoiseVariance member variable). , on the other hand, will vary with input. This filter computes the power spectral density of the input blurred image, subtracts the power spectral density of the noise, and uses the result as the estimate of .
For further information on the Wiener deconvolution filter, please see "Digital Signal Processing" by Kenneth R. Castleman, Prentice Hall, 1995
Definition at line 54 of file sitkWienerDeconvolutionImageFilter.h.
|
private |
Setup for member function dispatching
Definition at line 131 of file sitkWienerDeconvolutionImageFilter.h.
Define the pixels types supported by this filter
Definition at line 66 of file sitkWienerDeconvolutionImageFilter.h.
Definition at line 56 of file sitkWienerDeconvolutionImageFilter.h.
Enumerator | |
---|---|
ZERO_PAD | |
ZERO_FLUX_NEUMANN_PAD | |
PERIODIC_PAD |
Definition at line 94 of file sitkWienerDeconvolutionImageFilter.h.
Enumerator | |
---|---|
SAME | |
VALID |
Definition at line 104 of file sitkWienerDeconvolutionImageFilter.h.
|
virtual |
Destructor
itk::simple::WienerDeconvolutionImageFilter::WienerDeconvolutionImageFilter | ( | ) |
Default Constructor that takes no arguments and initializes default parameters
Image itk::simple::WienerDeconvolutionImageFilter::Execute | ( | const Image & | image1, |
const Image & | image2 | ||
) |
Execute the filter on the input images
Image itk::simple::WienerDeconvolutionImageFilter::Execute | ( | const Image & | image1, |
const Image & | image2, | ||
double | noiseVariance, | ||
bool | normalize, | ||
WienerDeconvolutionImageFilter::BoundaryConditionType | boundaryCondition, | ||
WienerDeconvolutionImageFilter::OutputRegionModeType | outputRegionMode | ||
) |
Execute the filter on the input images with the given parameters
|
private |
|
inline |
Definition at line 102 of file sitkWienerDeconvolutionImageFilter.h.
|
inlinevirtual |
Name of this class
Implements itk::simple::ProcessObject.
Definition at line 114 of file sitkWienerDeconvolutionImageFilter.h.
|
inline |
Set/get the variance of the zero-mean Gaussian white noise assumed to be added to the input.
Definition at line 78 of file sitkWienerDeconvolutionImageFilter.h.
|
inline |
Definition at line 92 of file sitkWienerDeconvolutionImageFilter.h.
|
inline |
Definition at line 112 of file sitkWienerDeconvolutionImageFilter.h.
|
inline |
Definition at line 88 of file sitkWienerDeconvolutionImageFilter.h.
|
inline |
Set the value of Normalize to true or false respectfully.
Definition at line 87 of file sitkWienerDeconvolutionImageFilter.h.
|
inline |
Definition at line 98 of file sitkWienerDeconvolutionImageFilter.h.
|
inline |
Set/get the variance of the zero-mean Gaussian white noise assumed to be added to the input.
Definition at line 73 of file sitkWienerDeconvolutionImageFilter.h.
|
inline |
Normalize the output image by the sum of the kernel components
Definition at line 84 of file sitkWienerDeconvolutionImageFilter.h.
References itk::simple::Normalize().
|
inline |
Definition at line 108 of file sitkWienerDeconvolutionImageFilter.h.
|
virtual |
Print ourselves out
Reimplemented from itk::simple::ProcessObject.
|
friend |
Definition at line 135 of file sitkWienerDeconvolutionImageFilter.h.
|
private |
Definition at line 143 of file sitkWienerDeconvolutionImageFilter.h.
|
private |
Definition at line 137 of file sitkWienerDeconvolutionImageFilter.h.
|
private |
Definition at line 140 of file sitkWienerDeconvolutionImageFilter.h.
|
private |
Definition at line 142 of file sitkWienerDeconvolutionImageFilter.h.
|
private |
Definition at line 144 of file sitkWienerDeconvolutionImageFilter.h.