ITK
4.1.0
Insight Segmentation and Registration Toolkit
|
#include <itkRecursiveSeparableImageFilter.h>
Base class for recursive convolution with a kernel.
RecursiveSeparableImageFilter is the base class for recursive filters that are applied in each dimension separately. If multi-component images are specified, the filtering operation works on each component independently.
This class implements the recursive filtering method proposed by R.Deriche in IEEE-PAMI Vol.12, No.1, January 1990, pp 78-87.
Details of the implementation are described in the technical report: R. Deriche, "Recursively Implementing The Gaussian and Its Derivatives", INRIA, 1993, ftp://ftp.inria.fr/INRIA/tech-reports/RR/RR-1893.ps.gz
Further improvements of the algorithm are described in: G. Farneback & C.-F. Westin, "On Implementation of Recursive Gaussian Filters", so far unpublished.
Definition at line 50 of file itkRecursiveSeparableImageFilter.h.
typedef SmartPointer< const Self > itk::RecursiveSeparableImageFilter< TInputImage, TOutputImage >::ConstPointer |
Reimplemented from itk::InPlaceImageFilter< TInputImage, TOutputImage >.
Reimplemented in itk::RecursiveGaussianImageFilter< TInputImage, TOutputImage >.
Definition at line 58 of file itkRecursiveSeparableImageFilter.h.
typedef TInputImage::ConstPointer itk::RecursiveSeparableImageFilter< TInputImage, TOutputImage >::InputImageConstPointer |
Reimplemented from itk::InPlaceImageFilter< TInputImage, TOutputImage >.
Definition at line 65 of file itkRecursiveSeparableImageFilter.h.
typedef TInputImage::Pointer itk::RecursiveSeparableImageFilter< TInputImage, TOutputImage >::InputImagePointer |
Smart pointer typedef support.
Reimplemented from itk::InPlaceImageFilter< TInputImage, TOutputImage >.
Definition at line 61 of file itkRecursiveSeparableImageFilter.h.
typedef TInputImage itk::RecursiveSeparableImageFilter< TInputImage, TOutputImage >::InputImageType |
Type of the input image
Reimplemented from itk::InPlaceImageFilter< TInputImage, TOutputImage >.
Definition at line 79 of file itkRecursiveSeparableImageFilter.h.
typedef TInputImage::PixelType itk::RecursiveSeparableImageFilter< TInputImage, TOutputImage >::InputPixelType |
Real type to be used in internal computations. RealType in general is templated over the pixel type. (For example for vector or tensor pixels, RealType is a vector or a tensor of doubles.) ScalarRealType is a type meant for scalars.
Definition at line 72 of file itkRecursiveSeparableImageFilter.h.
typedef TOutputImage::RegionType itk::RecursiveSeparableImageFilter< TInputImage, TOutputImage >::OutputImageRegionType |
Superclass typedefs.
Reimplemented from itk::InPlaceImageFilter< TInputImage, TOutputImage >.
Definition at line 76 of file itkRecursiveSeparableImageFilter.h.
typedef TOutputImage itk::RecursiveSeparableImageFilter< TInputImage, TOutputImage >::OutputImageType |
Type of the output image
Reimplemented from itk::InPlaceImageFilter< TInputImage, TOutputImage >.
Reimplemented in itk::RecursiveGaussianImageFilter< TInputImage, TOutputImage >.
Definition at line 82 of file itkRecursiveSeparableImageFilter.h.
typedef SmartPointer< Self > itk::RecursiveSeparableImageFilter< TInputImage, TOutputImage >::Pointer |
Reimplemented from itk::InPlaceImageFilter< TInputImage, TOutputImage >.
Reimplemented in itk::RecursiveGaussianImageFilter< TInputImage, TOutputImage >.
Definition at line 57 of file itkRecursiveSeparableImageFilter.h.
typedef NumericTraits< InputPixelType >::RealType itk::RecursiveSeparableImageFilter< TInputImage, TOutputImage >::RealType |
Reimplemented in itk::RecursiveGaussianImageFilter< TInputImage, TOutputImage >.
Definition at line 73 of file itkRecursiveSeparableImageFilter.h.
typedef NumericTraits< InputPixelType >::ScalarRealType itk::RecursiveSeparableImageFilter< TInputImage, TOutputImage >::ScalarRealType |
Reimplemented in itk::RecursiveGaussianImageFilter< TInputImage, TOutputImage >.
Definition at line 74 of file itkRecursiveSeparableImageFilter.h.
typedef RecursiveSeparableImageFilter itk::RecursiveSeparableImageFilter< TInputImage, TOutputImage >::Self |
Standard class typedefs.
Reimplemented from itk::InPlaceImageFilter< TInputImage, TOutputImage >.
Reimplemented in itk::RecursiveGaussianImageFilter< TInputImage, TOutputImage >.
Definition at line 55 of file itkRecursiveSeparableImageFilter.h.
typedef ImageToImageFilter< TInputImage, TOutputImage > itk::RecursiveSeparableImageFilter< TInputImage, TOutputImage >::Superclass |
Reimplemented from itk::InPlaceImageFilter< TInputImage, TOutputImage >.
Reimplemented in itk::RecursiveGaussianImageFilter< TInputImage, TOutputImage >.
Definition at line 56 of file itkRecursiveSeparableImageFilter.h.
itk::RecursiveSeparableImageFilter< TInputImage, TOutputImage >::RecursiveSeparableImageFilter | ( | ) | [protected] |
virtual itk::RecursiveSeparableImageFilter< TInputImage, TOutputImage >::~RecursiveSeparableImageFilter | ( | ) | [inline, protected, virtual] |
Definition at line 98 of file itkRecursiveSeparableImageFilter.h.
itk::RecursiveSeparableImageFilter< TInputImage, TOutputImage >::RecursiveSeparableImageFilter | ( | const Self & | ) | [private] |
void itk::RecursiveSeparableImageFilter< TInputImage, TOutputImage >::BeforeThreadedGenerateData | ( | ) | [protected, virtual] |
GenerateData (apply) the filter.
Reimplemented from itk::ImageSource< TOutputImage >.
void itk::RecursiveSeparableImageFilter< TInputImage, TOutputImage >::EnlargeOutputRequestedRegion | ( | DataObject * | output | ) | [protected, virtual] |
RecursiveSeparableImageFilter needs all of the input only in the "Direction" dimension. Therefore we enlarge the output's RequestedRegion to this. Then the superclass's GenerateInputRequestedRegion method will copy the output region to the input.
Reimplemented from itk::ProcessObject.
void itk::RecursiveSeparableImageFilter< TInputImage, TOutputImage >::FilterDataArray | ( | RealType * | outs, |
const RealType * | data, | ||
RealType * | scratch, | ||
unsigned int | ln | ||
) | [protected] |
Apply the Recursive Filter to an array of data. This method is called for each line of the volume. Parameter "scratch" is a scratch area used for internal computations that is the same size as the parameters "outs" and "data". The scratch area must be allocated outside of this routine (this avoids memory allocation and deallocation in the inner loop of the overall algorithm.
virtual unsigned int itk::RecursiveSeparableImageFilter< TInputImage, TOutputImage >::GetDirection | ( | ) | const [virtual] |
Get the direction in which the filter is to be applied.
const TInputImage* itk::RecursiveSeparableImageFilter< TInputImage, TOutputImage >::GetInputImage | ( | void | ) |
Get Input Image.
virtual const char* itk::RecursiveSeparableImageFilter< TInputImage, TOutputImage >::GetNameOfClass | ( | ) | const [virtual] |
Type macro that defines a name for this class.
Reimplemented from itk::InPlaceImageFilter< TInputImage, TOutputImage >.
Reimplemented in itk::RecursiveGaussianImageFilter< TInputImage, TOutputImage >.
void itk::RecursiveSeparableImageFilter< TInputImage, TOutputImage >::operator= | ( | const Self & | ) | [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::InPlaceImageFilter< TInputImage, TOutputImage >.
Reimplemented in itk::RecursiveGaussianImageFilter< TInputImage, TOutputImage >.
void itk::RecursiveSeparableImageFilter< TInputImage, TOutputImage >::PrintSelf | ( | std::ostream & | os, |
Indent | indent | ||
) | const [protected, virtual] |
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::InPlaceImageFilter< TInputImage, TOutputImage >.
Reimplemented in itk::RecursiveGaussianImageFilter< TInputImage, TOutputImage >.
virtual void itk::RecursiveSeparableImageFilter< TInputImage, TOutputImage >::SetDirection | ( | unsigned int | _arg | ) | [virtual] |
Set the direction in which the filter is to be applied.
void itk::RecursiveSeparableImageFilter< TInputImage, TOutputImage >::SetInputImage | ( | const TInputImage * | ) |
Set Input Image.
virtual void itk::RecursiveSeparableImageFilter< TInputImage, TOutputImage >::SetUp | ( | ScalarRealType | spacing | ) | [protected, pure virtual] |
Set up the coefficients of the filter to approximate a specific kernel. Typically it can be used to approximate a Gaussian or one of its derivatives. Parameter is the spacing along the dimension to filter.
Implemented in itk::RecursiveGaussianImageFilter< TInputImage, TOutputImage >.
unsigned int itk::RecursiveSeparableImageFilter< TInputImage, TOutputImage >::SplitRequestedRegion | ( | unsigned int | i, |
unsigned int | num, | ||
OutputImageRegionType & | splitRegion | ||
) | [protected, virtual] |
Split the output's RequestedRegion into "num" pieces, returning region "i" as "splitRegion". This method is called "num" times. The regions must not overlap. The method returns the number of pieces that the routine is capable of splitting the output RequestedRegion, i.e. return value is less than or equal to "num".
Reimplemented from itk::ImageSource< TOutputImage >.
void itk::RecursiveSeparableImageFilter< TInputImage, TOutputImage >::ThreadedGenerateData | ( | const OutputImageRegionType & | outputRegionForThread, |
ThreadIdType | threadId | ||
) | [protected, virtual] |
If an imaging filter can be implemented as a multithreaded algorithm, the filter will provide an implementation of ThreadedGenerateData(). This superclass will automatically split the output image into a number of pieces, spawn multiple threads, and call ThreadedGenerateData() in each thread. Prior to spawning threads, the BeforeThreadedGenerateData() method is called. After all the threads have completed, the AfterThreadedGenerateData() method is called. If an image processing filter cannot support threading, that filter should provide an implementation of the GenerateData() method instead of providing an implementation of ThreadedGenerateData(). If a filter provides a GenerateData() method as its implementation, then the filter is responsible for allocating the output data. If a filter provides a ThreadedGenerateData() method as its implementation, then the output memory will allocated automatically by this superclass. The ThreadedGenerateData() method should only produce the output specified by "outputThreadRegion" parameter. ThreadedGenerateData() cannot write to any other portion of the output image (as this is responsibility of a different thread).
Reimplemented from itk::ImageSource< TOutputImage >.
ScalarRealType itk::RecursiveSeparableImageFilter< TInputImage, TOutputImage >::m_BM1 [protected] |
Definition at line 161 of file itkRecursiveSeparableImageFilter.h.
ScalarRealType itk::RecursiveSeparableImageFilter< TInputImage, TOutputImage >::m_BM2 [protected] |
Definition at line 162 of file itkRecursiveSeparableImageFilter.h.
ScalarRealType itk::RecursiveSeparableImageFilter< TInputImage, TOutputImage >::m_BM3 [protected] |
Definition at line 163 of file itkRecursiveSeparableImageFilter.h.
ScalarRealType itk::RecursiveSeparableImageFilter< TInputImage, TOutputImage >::m_BM4 [protected] |
Definition at line 164 of file itkRecursiveSeparableImageFilter.h.
ScalarRealType itk::RecursiveSeparableImageFilter< TInputImage, TOutputImage >::m_BN1 [protected] |
Recursive coefficients to be used at the boundaries to simulate edge extension boundary conditions.
Definition at line 156 of file itkRecursiveSeparableImageFilter.h.
ScalarRealType itk::RecursiveSeparableImageFilter< TInputImage, TOutputImage >::m_BN2 [protected] |
Definition at line 157 of file itkRecursiveSeparableImageFilter.h.
ScalarRealType itk::RecursiveSeparableImageFilter< TInputImage, TOutputImage >::m_BN3 [protected] |
Definition at line 158 of file itkRecursiveSeparableImageFilter.h.
ScalarRealType itk::RecursiveSeparableImageFilter< TInputImage, TOutputImage >::m_BN4 [protected] |
Definition at line 159 of file itkRecursiveSeparableImageFilter.h.
ScalarRealType itk::RecursiveSeparableImageFilter< TInputImage, TOutputImage >::m_D1 [protected] |
Recursive coefficients that multiply previously computed values at the output. These are the same for the causal and anti-causal parts of the filter.
Definition at line 143 of file itkRecursiveSeparableImageFilter.h.
ScalarRealType itk::RecursiveSeparableImageFilter< TInputImage, TOutputImage >::m_D2 [protected] |
Definition at line 144 of file itkRecursiveSeparableImageFilter.h.
ScalarRealType itk::RecursiveSeparableImageFilter< TInputImage, TOutputImage >::m_D3 [protected] |
Definition at line 145 of file itkRecursiveSeparableImageFilter.h.
ScalarRealType itk::RecursiveSeparableImageFilter< TInputImage, TOutputImage >::m_D4 [protected] |
Definition at line 146 of file itkRecursiveSeparableImageFilter.h.
unsigned int itk::RecursiveSeparableImageFilter< TInputImage, TOutputImage >::m_Direction [private] |
Direction in which the filter is to be applied this should be in the range [0,ImageDimension-1].
Definition at line 171 of file itkRecursiveSeparableImageFilter.h.
ScalarRealType itk::RecursiveSeparableImageFilter< TInputImage, TOutputImage >::m_M1 [protected] |
Anti-causal coefficients that multiply the input data.
Definition at line 149 of file itkRecursiveSeparableImageFilter.h.
ScalarRealType itk::RecursiveSeparableImageFilter< TInputImage, TOutputImage >::m_M2 [protected] |
Definition at line 150 of file itkRecursiveSeparableImageFilter.h.
ScalarRealType itk::RecursiveSeparableImageFilter< TInputImage, TOutputImage >::m_M3 [protected] |
Definition at line 151 of file itkRecursiveSeparableImageFilter.h.
ScalarRealType itk::RecursiveSeparableImageFilter< TInputImage, TOutputImage >::m_M4 [protected] |
Definition at line 152 of file itkRecursiveSeparableImageFilter.h.
ScalarRealType itk::RecursiveSeparableImageFilter< TInputImage, TOutputImage >::m_N0 [protected] |
Causal coefficients that multiply the input data.
Definition at line 135 of file itkRecursiveSeparableImageFilter.h.
ScalarRealType itk::RecursiveSeparableImageFilter< TInputImage, TOutputImage >::m_N1 [protected] |
Definition at line 136 of file itkRecursiveSeparableImageFilter.h.
ScalarRealType itk::RecursiveSeparableImageFilter< TInputImage, TOutputImage >::m_N2 [protected] |
Definition at line 137 of file itkRecursiveSeparableImageFilter.h.
ScalarRealType itk::RecursiveSeparableImageFilter< TInputImage, TOutputImage >::m_N3 [protected] |
Definition at line 138 of file itkRecursiveSeparableImageFilter.h.