ITK  4.0.0
Insight Segmentation and Registration Toolkit
Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Private Member Functions | Private Attributes
itk::ZeroCrossingBasedEdgeDetectionImageFilter< TInputImage, TOutputImage > Class Template Reference

This filter implements a zero-crossing based edge detecor. More...

#include <itkZeroCrossingBasedEdgeDetectionImageFilter.h>

Inheritance diagram for itk::ZeroCrossingBasedEdgeDetectionImageFilter< TInputImage, TOutputImage >:
Collaboration diagram for itk::ZeroCrossingBasedEdgeDetectionImageFilter< TInputImage, TOutputImage >:

List of all members.

Public Types

typedef FixedArray< double,
itkGetStaticConstMacro(ImageDimension) > 
ArrayType
typedef SmartPointer< const SelfConstPointer
typedef TInputImage::PixelType InputImagePixelType
typedef TInputImage InputImageType
typedef TOutputImage::PixelType OutputImagePixelType
typedef TOutputImage::RegionType OutputImageRegionType
typedef TOutputImage OutputImageType
typedef SmartPointer< SelfPointer
typedef
ZeroCrossingBasedEdgeDetectionImageFilter 
Self
typedef ImageToImageFilter
< TInputImage, TOutputImage > 
Superclass

Public Member Functions

virtual ::itk::LightObject::Pointer CreateAnother (void) const
virtual const char * GetNameOfClass () const
void SetMaximumError (const typename ArrayType::ValueType v)
void SetVariance (const typename ArrayType::ValueType v)
 typedef (Concept::SameDimension< ImageDimension, OutputImageDimension >) SameDimensionCheck
 typedef (Concept::EqualityComparable< OutputImagePixelType >) OutputEqualityComparableCheck
 typedef (Concept::IsFloatingPoint< InputImagePixelType >) PixelTypeIsFloatingPointCheck
 typedef (Concept::SameType< InputImagePixelType, OutputImagePixelType >) SameTypeCheck
 typedef (Concept::OStreamWritable< OutputImagePixelType >) OutputOStreamWritableCheck
virtual void SetVariance (ArrayType _arg)
virtual const ArrayType GetVariance () const
virtual void SetMaximumError (ArrayType _arg)
virtual const ArrayType GetMaximumError () const
virtual OutputImagePixelType GetBackgroundValue () const
virtual void SetBackgroundValue (OutputImagePixelType _arg)
virtual OutputImagePixelType GetForegroundValue () const
virtual void SetForegroundValue (OutputImagePixelType _arg)

Static Public Member Functions

static Pointer New ()

Static Public Attributes

static const unsigned int ImageDimension = TInputImage::ImageDimension
static const unsigned int OutputImageDimension = TOutputImage::ImageDimension

Protected Member Functions

void GenerateData ()
void PrintSelf (std::ostream &os, Indent indent) const
 ~ZeroCrossingBasedEdgeDetectionImageFilter ()
 ZeroCrossingBasedEdgeDetectionImageFilter ()

Private Member Functions

void operator= (const Self &)
 ZeroCrossingBasedEdgeDetectionImageFilter (const Self &)

Private Attributes

OutputImagePixelType m_BackgroundValue
OutputImagePixelType m_ForegroundValue
ArrayType m_MaximumError
ArrayType m_Variance

Detailed Description

template<class TInputImage, class TOutputImage>
class itk::ZeroCrossingBasedEdgeDetectionImageFilter< TInputImage, TOutputImage >

This filter implements a zero-crossing based edge detecor.

The zero-crossing based edge detector looks for pixels in the Laplacian of an image where the value of the Laplacian passes through zero --- points where the Laplacian changes sign. Such points often occur at ``edges'' in images --- i.e. points where the intensity of the image changes rapidly, but they also occur at places that are not as easy to associate with edges. It is best to think of the zero crossing detector as some sort of feature detector rather than as a specific edge detector.

Zero crossings always lie on closed contours and so the output from the zero crossing detector is usually a binary image with single pixel thickness lines showing the positions of the zero crossing points.
In this implementation, the input image is first smoothed with a Gaussian filter, then the LaplacianImageFilter is applied to smoothed image. Finally the zero-crossing of the Laplacian of the smoothed image is detected. The output is a binary image.
Inputs and Outputs
The input to the filter should be a scalar, itk::Image of arbitrary dimension. The output image is a binary, labeled image. See itkZeroCrossingImageFilter for more information on requirements of the data type of the output.
To use this filter, first set the parameters (variance and maximum error) needed by the embedded DiscreteGaussianImageFilter, i.e. See DiscreteGaussianImageFilter for information about these parameters. Optionally, you may also set foreground and background values for the zero-crossing filter. The default label values are Zero for the background and One for the foreground, as defined in NumericTraits for the data type of the output image.
See also:
DiscreteGaussianImageFilter
LaplacianImageFilter
ZeroCrossingImageFilter

Definition at line 70 of file itkZeroCrossingBasedEdgeDetectionImageFilter.h.


Member Typedef Documentation

template<class TInputImage , class TOutputImage >
typedef FixedArray< double, itkGetStaticConstMacro(ImageDimension) > itk::ZeroCrossingBasedEdgeDetectionImageFilter< TInputImage, TOutputImage >::ArrayType

Typedef of double containers

Definition at line 107 of file itkZeroCrossingBasedEdgeDetectionImageFilter.h.

template<class TInputImage , class TOutputImage >
typedef SmartPointer< const Self > itk::ZeroCrossingBasedEdgeDetectionImageFilter< TInputImage, TOutputImage >::ConstPointer
template<class TInputImage , class TOutputImage >
typedef TInputImage::PixelType itk::ZeroCrossingBasedEdgeDetectionImageFilter< TInputImage, TOutputImage >::InputImagePixelType

Define pixel type

Reimplemented from itk::ImageToImageFilter< TInputImage, TOutputImage >.

Definition at line 87 of file itkZeroCrossingBasedEdgeDetectionImageFilter.h.

template<class TInputImage , class TOutputImage >
typedef TInputImage itk::ZeroCrossingBasedEdgeDetectionImageFilter< TInputImage, TOutputImage >::InputImageType
template<class TInputImage , class TOutputImage >
typedef TOutputImage::PixelType itk::ZeroCrossingBasedEdgeDetectionImageFilter< TInputImage, TOutputImage >::OutputImagePixelType
template<class TInputImage , class TOutputImage >
typedef TOutputImage::RegionType itk::ZeroCrossingBasedEdgeDetectionImageFilter< TInputImage, TOutputImage >::OutputImageRegionType

Typedef to describe the output image region type.

Reimplemented from itk::ImageToImageFilter< TInputImage, TOutputImage >.

Definition at line 91 of file itkZeroCrossingBasedEdgeDetectionImageFilter.h.

template<class TInputImage , class TOutputImage >
typedef TOutputImage itk::ZeroCrossingBasedEdgeDetectionImageFilter< TInputImage, TOutputImage >::OutputImageType

Some convenient typedefs.

Reimplemented from itk::ImageSource< TOutputImage >.

Definition at line 80 of file itkZeroCrossingBasedEdgeDetectionImageFilter.h.

template<class TInputImage , class TOutputImage >
typedef SmartPointer< Self > itk::ZeroCrossingBasedEdgeDetectionImageFilter< TInputImage, TOutputImage >::Pointer
template<class TInputImage , class TOutputImage >
typedef ZeroCrossingBasedEdgeDetectionImageFilter itk::ZeroCrossingBasedEdgeDetectionImageFilter< TInputImage, TOutputImage >::Self

Standard "Self" & Superclass typedef.

Reimplemented from itk::ImageToImageFilter< TInputImage, TOutputImage >.

Definition at line 75 of file itkZeroCrossingBasedEdgeDetectionImageFilter.h.

template<class TInputImage , class TOutputImage >
typedef ImageToImageFilter< TInputImage, TOutputImage > itk::ZeroCrossingBasedEdgeDetectionImageFilter< TInputImage, TOutputImage >::Superclass

Constructor & Destructor Documentation

template<class TInputImage , class TOutputImage >
itk::ZeroCrossingBasedEdgeDetectionImageFilter< TInputImage, TOutputImage >::ZeroCrossingBasedEdgeDetectionImageFilter ( ) [inline, protected]

End concept checking

Definition at line 156 of file itkZeroCrossingBasedEdgeDetectionImageFilter.h.

template<class TInputImage , class TOutputImage >
itk::ZeroCrossingBasedEdgeDetectionImageFilter< TInputImage, TOutputImage >::~ZeroCrossingBasedEdgeDetectionImageFilter ( ) [inline, protected]
template<class TInputImage , class TOutputImage >
itk::ZeroCrossingBasedEdgeDetectionImageFilter< TInputImage, TOutputImage >::ZeroCrossingBasedEdgeDetectionImageFilter ( const Self ) [private]

Member Function Documentation

template<class TInputImage , class TOutputImage >
virtual::itk::LightObject::Pointer itk::ZeroCrossingBasedEdgeDetectionImageFilter< TInputImage, TOutputImage >::CreateAnother ( void  ) const [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.

template<class TInputImage , class TOutputImage >
void itk::ZeroCrossingBasedEdgeDetectionImageFilter< TInputImage, TOutputImage >::GenerateData ( ) [protected, virtual]

Standard pipeline method. While this class does not implement a ThreadedGenerateData(), its GenerateData() delegates all calculations to the pipeline of a DiscreteGaussianImageFilter, a LaplacianImageFilter and a ZeroCrossingImageFilter. Since these filters are multithreaded, this filter is multithreaded by default.

Reimplemented from itk::ImageSource< TOutputImage >.

template<class TInputImage , class TOutputImage >
virtual OutputImagePixelType itk::ZeroCrossingBasedEdgeDetectionImageFilter< TInputImage, TOutputImage >::GetBackgroundValue ( ) const [virtual]

Get/Set the label values for the ZeroCrossingImageFilter

template<class TInputImage , class TOutputImage >
virtual OutputImagePixelType itk::ZeroCrossingBasedEdgeDetectionImageFilter< TInputImage, TOutputImage >::GetForegroundValue ( ) const [virtual]

Get/Set the label values for the ZeroCrossingImageFilter

template<class TInputImage , class TOutputImage >
virtual const ArrayType itk::ZeroCrossingBasedEdgeDetectionImageFilter< TInputImage, TOutputImage >::GetMaximumError ( ) const [virtual]

Standard get/set macros for Gaussian filter parameters.

template<class TInputImage , class TOutputImage >
virtual const char* itk::ZeroCrossingBasedEdgeDetectionImageFilter< TInputImage, TOutputImage >::GetNameOfClass ( ) const [virtual]

Run-time type information (and related methods).

Reimplemented from itk::ImageToImageFilter< TInputImage, TOutputImage >.

template<class TInputImage , class TOutputImage >
virtual const ArrayType itk::ZeroCrossingBasedEdgeDetectionImageFilter< TInputImage, TOutputImage >::GetVariance ( ) const [virtual]

Standard get/set macros for Gaussian filter parameters.

template<class TInputImage , class TOutputImage >
static Pointer itk::ZeroCrossingBasedEdgeDetectionImageFilter< TInputImage, TOutputImage >::New ( ) [static]

Method for creation through the object factory.

Reimplemented from itk::Object.

template<class TInputImage , class TOutputImage >
void itk::ZeroCrossingBasedEdgeDetectionImageFilter< 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::ImageToImageFilter< TInputImage, TOutputImage >.

template<class TInputImage , class TOutputImage >
void itk::ZeroCrossingBasedEdgeDetectionImageFilter< 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::ImageToImageFilter< TInputImage, TOutputImage >.

template<class TInputImage , class TOutputImage >
virtual void itk::ZeroCrossingBasedEdgeDetectionImageFilter< TInputImage, TOutputImage >::SetBackgroundValue ( OutputImagePixelType  _arg) [virtual]

Get/Set the label values for the ZeroCrossingImageFilter

template<class TInputImage , class TOutputImage >
virtual void itk::ZeroCrossingBasedEdgeDetectionImageFilter< TInputImage, TOutputImage >::SetForegroundValue ( OutputImagePixelType  _arg) [virtual]

Get/Set the label values for the ZeroCrossingImageFilter

template<class TInputImage , class TOutputImage >
virtual void itk::ZeroCrossingBasedEdgeDetectionImageFilter< TInputImage, TOutputImage >::SetMaximumError ( ArrayType  _arg) [virtual]

Standard get/set macros for Gaussian filter parameters.

template<class TInputImage , class TOutputImage >
void itk::ZeroCrossingBasedEdgeDetectionImageFilter< TInputImage, TOutputImage >::SetMaximumError ( const typename ArrayType::ValueType  v) [inline]

Set the MaximumError parameter needed by the embedded gaussian filter This value is used to set the desired maximum error of the gaussian approximation. Maximum error is the difference between the area under the discrete Gaussian curve and the area under the continuous Gaussian. Maximum error affects the Gaussian operator size. The value must be between 0.0 and 1.0.

Definition at line 135 of file itkZeroCrossingBasedEdgeDetectionImageFilter.h.

template<class TInputImage , class TOutputImage >
virtual void itk::ZeroCrossingBasedEdgeDetectionImageFilter< TInputImage, TOutputImage >::SetVariance ( ArrayType  _arg) [virtual]

Standard get/set macros for Gaussian filter parameters.

template<class TInputImage , class TOutputImage >
void itk::ZeroCrossingBasedEdgeDetectionImageFilter< TInputImage, TOutputImage >::SetVariance ( const typename ArrayType::ValueType  v) [inline]

Set the variance parameter needed by the embedded gaussian filter

Definition at line 124 of file itkZeroCrossingBasedEdgeDetectionImageFilter.h.

template<class TInputImage , class TOutputImage >
itk::ZeroCrossingBasedEdgeDetectionImageFilter< TInputImage, TOutputImage >::typedef ( Concept::SameType< InputImagePixelType, OutputImagePixelType )

This class requires SameTypeCheck in the form of ( Concept::SameType< InputImagePixelType, OutputImagePixelType > )

template<class TInputImage , class TOutputImage >
itk::ZeroCrossingBasedEdgeDetectionImageFilter< TInputImage, TOutputImage >::typedef ( Concept::OStreamWritable< OutputImagePixelType )

This class requires OutputOStreamWritableCheck in the form of ( Concept::OStreamWritable< OutputImagePixelType > )

template<class TInputImage , class TOutputImage >
itk::ZeroCrossingBasedEdgeDetectionImageFilter< TInputImage, TOutputImage >::typedef ( Concept::SameDimension< ImageDimension, OutputImageDimension )

This class requires SameDimensionCheck in the form of ( Concept::SameDimension< ImageDimension, OutputImageDimension > )

template<class TInputImage , class TOutputImage >
itk::ZeroCrossingBasedEdgeDetectionImageFilter< TInputImage, TOutputImage >::typedef ( Concept::EqualityComparable< OutputImagePixelType )

Begin concept checking This class requires OutputEqualityComparableCheck in the form of ( Concept::EqualityComparable< OutputImagePixelType > )

template<class TInputImage , class TOutputImage >
itk::ZeroCrossingBasedEdgeDetectionImageFilter< TInputImage, TOutputImage >::typedef ( Concept::IsFloatingPoint< InputImagePixelType )

This class requires PixelTypeIsFloatingPointCheck in the form of ( Concept::IsFloatingPoint< InputImagePixelType > )


Member Data Documentation

template<class TInputImage , class TOutputImage >
const unsigned int itk::ZeroCrossingBasedEdgeDetectionImageFilter< TInputImage, TOutputImage >::ImageDimension = TInputImage::ImageDimension [static]

ImageDimension enumeration

Definition at line 101 of file itkZeroCrossingBasedEdgeDetectionImageFilter.h.

template<class TInputImage , class TOutputImage >
OutputImagePixelType itk::ZeroCrossingBasedEdgeDetectionImageFilter< TInputImage, TOutputImage >::m_BackgroundValue [private]
template<class TInputImage , class TOutputImage >
OutputImagePixelType itk::ZeroCrossingBasedEdgeDetectionImageFilter< TInputImage, TOutputImage >::m_ForegroundValue [private]
template<class TInputImage , class TOutputImage >
ArrayType itk::ZeroCrossingBasedEdgeDetectionImageFilter< TInputImage, TOutputImage >::m_MaximumError [private]

The maximum error of the gaussian blurring kernel in each dimensional direction.

Definition at line 185 of file itkZeroCrossingBasedEdgeDetectionImageFilter.h.

template<class TInputImage , class TOutputImage >
ArrayType itk::ZeroCrossingBasedEdgeDetectionImageFilter< TInputImage, TOutputImage >::m_Variance [private]

The variance of the Gaussian Filter used in this filter

Definition at line 181 of file itkZeroCrossingBasedEdgeDetectionImageFilter.h.

template<class TInputImage , class TOutputImage >
const unsigned int itk::ZeroCrossingBasedEdgeDetectionImageFilter< TInputImage, TOutputImage >::OutputImageDimension = TOutputImage::ImageDimension [static]

ImageDimension enumeration

Reimplemented from itk::ImageToImageFilter< TInputImage, TOutputImage >.

Definition at line 103 of file itkZeroCrossingBasedEdgeDetectionImageFilter.h.


The documentation for this class was generated from the following file: