Main Page   Groups   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Namespace Members   Compound Members   File Members   Concepts

itk::CannyEdgeDetectionImageFilter< TInputImage, TOutputImage > Class Template Reference

#include <itkCannyEdgeDetectionImageFilter.h>

Inheritance diagram for itk::CannyEdgeDetectionImageFilter< TInputImage, TOutputImage >:

Inheritance graph
[legend]
Collaboration diagram for itk::CannyEdgeDetectionImageFilter< TInputImage, TOutputImage >:

Collaboration graph
[legend]
List of all members.

Public Types

typedef CannyEdgeDetectionImageFilter Self
typedef ImageToImageFilter<
TInputImage, TOutputImage > 
Superclass
typedef TInputImage InputImageType
typedef TOutputImage OutputImageType
typedef SmartPointer< SelfPointer
typedef SmartPointer< const
Self
ConstPointer
typedef TInputImage::PixelType InputImagePixelType
typedef TOutputImage::PixelType OutputImagePixelType
typedef TInputImage::IndexType IndexType
typedef ZeroFluxNeumannBoundaryCondition<
OutputImageType
DefaultBoundaryConditionType
typedef ConstNeighborhoodIterator<
OutputImageType, DefaultBoundaryConditionType
NeighborhoodType
typedef ListNode< IndexTypeListNodeType
typedef ObjectStore< ListNodeTypeListNodeStorageType
typedef SparseFieldLayer<
ListNodeType
ListType
typedef ListType::Pointer ListPointerType
typedef TOutputImage::RegionType OutputImageRegionType
typedef FixedArray< double,
itkGetStaticConstMacro(ImageDimension) 
ArrayType )

Public Member Functions

virtual const char * GetNameOfClass () const
 itkStaticConstMacro (ImageDimension, unsigned int, TInputImage::ImageDimension)
void SetThreshold (const OutputImagePixelType th)
OutputImagePixelType GetThreshold (OutputImagePixelType th)
virtual void SetUpperThreshold (OutputImagePixelType _arg)
virtual OutputImagePixelType GetUpperThreshold ()
virtual void SetLowerThreshold (OutputImagePixelType _arg)
virtual OutputImagePixelType GetLowerThreshold ()
virtual void SetOutsideValue (OutputImagePixelType _arg)
virtual OutputImagePixelType GetOutsideValue ()
virtual void GenerateInputRequestedRegion () throw (InvalidRequestedRegionError)
virtual void SetVariance (ArrayType _arg)
virtual const ArrayType GetVariance ()
virtual void SetMaximumError (ArrayType _arg)
virtual const ArrayType GetMaximumError ()
void SetVariance (const typename ArrayType::ValueType v)
void SetMaximumError (const typename ArrayType::ValueType v)

Static Public Member Functions

Pointer New ()

Protected Types

typedef DiscreteGaussianImageFilter<
InputImageType, OutputImageType
GaussianImageFilterType
typedef MultiplyImageFilter<
OutputImageType, OutputImageType,
OutputImageType
MultiplyImageFilterType

Protected Member Functions

 CannyEdgeDetectionImageFilter ()
 CannyEdgeDetectionImageFilter (const Self &)
void PrintSelf (std::ostream &os, Indent indent) const
void GenerateData ()

Detailed Description

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

This filter is an implementation of a Canny edge detector for scalar-valued images. Based on John Canny's paper "A Computational Approach to Edge Detection"(IEEE Transactions on Pattern Analysis and Machine Intelligence, Vol. PAMI-8, No.6, November 1986), there are four major steps used in the edge-detection scheme: (1) Smoothe the input image with Gaussian filter. (2) Calculate the second directional derivatives of the smoothed image. (3) Non-Maximum Suppression: the zero-crossings of 2nd derivative are found, and the sign of third derivative is used to find the correct extrema. (4) The hysteresis thresholding is applied to the gradient magnitude (multiplied with zero-crossings) of the smoothed image to find and link edges.

Inputs and Outputs
The input to this filter should be a scalar, real-valued Itk image of arbitrary dimension. The output should also be a scalar, real-value Itk image of the same dimensionality.
Parameters
There are four parameters for this filter that control the sub-filters used by the algorithm.
Variance and Maximum error are used in the Gaussian smoothing of the input image. See itkDiscreteGaussianImageFilter for information on these parameters.
Threshold is the lowest allowed value in the output image. Its data type is the same as the data type of the output image. Any values below the Threshold level will be replaced with the OutsideValue parameter value, whose default is zero.

Todo:
Edge-linking will be added when an itk connected component labeling algorithm is available.
See also:
DiscreteGaussianImageFilter

ZeroCrossingImageFilter

ThresholdImageFilter

Definition at line 89 of file itkCannyEdgeDetectionImageFilter.h.


Member Typedef Documentation

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

Typedef of double containers

Definition at line 140 of file itkCannyEdgeDetectionImageFilter.h.

template<class TInputImage, class TOutputImage>
typedef SmartPointer<const Self> itk::CannyEdgeDetectionImageFilter< TInputImage, TOutputImage >::ConstPointer
 

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

Definition at line 103 of file itkCannyEdgeDetectionImageFilter.h.

template<class TInputImage, class TOutputImage>
typedef ZeroFluxNeumannBoundaryCondition<OutputImageType> itk::CannyEdgeDetectionImageFilter< TInputImage, TOutputImage >::DefaultBoundaryConditionType
 

The default boundary condition is used unless overridden in the Evaluate() method.

Definition at line 113 of file itkCannyEdgeDetectionImageFilter.h.

template<class TInputImage, class TOutputImage>
typedef DiscreteGaussianImageFilter<InputImageType, OutputImageType> itk::CannyEdgeDetectionImageFilter< TInputImage, TOutputImage >::GaussianImageFilterType [protected]
 

Definition at line 224 of file itkCannyEdgeDetectionImageFilter.h.

template<class TInputImage, class TOutputImage>
typedef TInputImage::IndexType itk::CannyEdgeDetectionImageFilter< TInputImage, TOutputImage >::IndexType
 

Definition at line 108 of file itkCannyEdgeDetectionImageFilter.h.

template<class TInputImage, class TOutputImage>
typedef TInputImage::PixelType itk::CannyEdgeDetectionImageFilter< TInputImage, TOutputImage >::InputImagePixelType
 

Define pixel types.

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

Definition at line 106 of file itkCannyEdgeDetectionImageFilter.h.

template<class TInputImage, class TOutputImage>
typedef TInputImage itk::CannyEdgeDetectionImageFilter< TInputImage, TOutputImage >::InputImageType
 

Image typedef support

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

Definition at line 98 of file itkCannyEdgeDetectionImageFilter.h.

template<class TInputImage, class TOutputImage>
typedef ObjectStore<ListNodeType> itk::CannyEdgeDetectionImageFilter< TInputImage, TOutputImage >::ListNodeStorageType
 

Definition at line 122 of file itkCannyEdgeDetectionImageFilter.h.

template<class TInputImage, class TOutputImage>
typedef ListNode<IndexType> itk::CannyEdgeDetectionImageFilter< TInputImage, TOutputImage >::ListNodeType
 

Definition at line 121 of file itkCannyEdgeDetectionImageFilter.h.

template<class TInputImage, class TOutputImage>
typedef ListType::Pointer itk::CannyEdgeDetectionImageFilter< TInputImage, TOutputImage >::ListPointerType
 

Definition at line 124 of file itkCannyEdgeDetectionImageFilter.h.

template<class TInputImage, class TOutputImage>
typedef SparseFieldLayer<ListNodeType> itk::CannyEdgeDetectionImageFilter< TInputImage, TOutputImage >::ListType
 

Definition at line 123 of file itkCannyEdgeDetectionImageFilter.h.

template<class TInputImage, class TOutputImage>
typedef MultiplyImageFilter< OutputImageType, OutputImageType, OutputImageType> itk::CannyEdgeDetectionImageFilter< TInputImage, TOutputImage >::MultiplyImageFilterType [protected]
 

Definition at line 226 of file itkCannyEdgeDetectionImageFilter.h.

template<class TInputImage, class TOutputImage>
typedef ConstNeighborhoodIterator<OutputImageType, DefaultBoundaryConditionType> itk::CannyEdgeDetectionImageFilter< TInputImage, TOutputImage >::NeighborhoodType
 

The type of data structure that is passed to this function object to evaluate at a pixel that does not lie on a data set boundary.

Definition at line 119 of file itkCannyEdgeDetectionImageFilter.h.

template<class TInputImage, class TOutputImage>
typedef TOutputImage::PixelType itk::CannyEdgeDetectionImageFilter< TInputImage, TOutputImage >::OutputImagePixelType
 

Reimplemented from itk::ImageSource< TOutputImage >.

Definition at line 107 of file itkCannyEdgeDetectionImageFilter.h.

template<class TInputImage, class TOutputImage>
typedef TOutputImage::RegionType itk::CannyEdgeDetectionImageFilter< TInputImage, TOutputImage >::OutputImageRegionType
 

Typedef to describe the output image region type.

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

Definition at line 130 of file itkCannyEdgeDetectionImageFilter.h.

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

Some convenient typedefs.

Reimplemented from itk::ImageSource< TOutputImage >.

Definition at line 99 of file itkCannyEdgeDetectionImageFilter.h.

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

SmartPointer typedef support

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

Definition at line 102 of file itkCannyEdgeDetectionImageFilter.h.

template<class TInputImage, class TOutputImage>
typedef CannyEdgeDetectionImageFilter itk::CannyEdgeDetectionImageFilter< TInputImage, TOutputImage >::Self
 

Standard "Self" & Superclass typedef.

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

Definition at line 94 of file itkCannyEdgeDetectionImageFilter.h.

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

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

Definition at line 95 of file itkCannyEdgeDetectionImageFilter.h.


Constructor & Destructor Documentation

template<class TInputImage, class TOutputImage>
itk::CannyEdgeDetectionImageFilter< TInputImage, TOutputImage >::CannyEdgeDetectionImageFilter  )  [protected]
 

template<class TInputImage, class TOutputImage>
itk::CannyEdgeDetectionImageFilter< TInputImage, TOutputImage >::CannyEdgeDetectionImageFilter const Self  )  [inline, protected]
 

Definition at line 218 of file itkCannyEdgeDetectionImageFilter.h.


Member Function Documentation

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

A version of GenerateData() specific for image processing filters. This implementation will split the processing across multiple threads. The buffer is allocated by this method. Then the BeforeThreadedGenerateData() method is called (if provided). Then, a series of threads are spawned each calling ThreadedGenerateData(). After all the threads have completed processing, the AfterThreadedGenerateData() method is called (if provided). If an image processing filter cannot be threaded, the filter should provide an implementation of GenerateData(). That implementation is responsible for allocating the output buffer. If a filter an be threaded, it should NOT provide a GenerateData() method but should provide a ThreadedGenerateData() instead.

See also:
ThreadedGenerateData()

Reimplemented from itk::ImageSource< TOutputImage >.

template<class TInputImage, class TOutputImage>
virtual void itk::CannyEdgeDetectionImageFilter< TInputImage, TOutputImage >::GenerateInputRequestedRegion  )  throw (InvalidRequestedRegionError) [virtual]
 

CannyEdgeDetectionImageFilter needs a larger input requested region than the output requested region ( derivative operators, etc). As such, CannyEdgeDetectionImageFilter needs to provide an implementation for GenerateInputRequestedRegion() in order to inform the pipeline execution model.

See also:
ImageToImageFilter::GenerateInputRequestedRegion()

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

template<class TInputImage, class TOutputImage>
virtual OutputImagePixelType itk::CannyEdgeDetectionImageFilter< TInputImage, TOutputImage >::GetLowerThreshold  )  [virtual]
 

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

Standard get/set macros for filter parameters.

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

Run-time type information (and related methods).

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

template<class TInputImage, class TOutputImage>
virtual OutputImagePixelType itk::CannyEdgeDetectionImageFilter< TInputImage, TOutputImage >::GetOutsideValue  )  [virtual]
 

template<class TInputImage, class TOutputImage>
OutputImagePixelType itk::CannyEdgeDetectionImageFilter< TInputImage, TOutputImage >::GetThreshold OutputImagePixelType  th  )  [inline]
 

Definition at line 190 of file itkCannyEdgeDetectionImageFilter.h.

template<class TInputImage, class TOutputImage>
virtual OutputImagePixelType itk::CannyEdgeDetectionImageFilter< TInputImage, TOutputImage >::GetUpperThreshold  )  [virtual]
 

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

Standard get/set macros for filter parameters.

template<class TInputImage, class TOutputImage>
itk::CannyEdgeDetectionImageFilter< TInputImage, TOutputImage >::itkStaticConstMacro ImageDimension  ,
unsigned  int,
TInputImage::ImageDimension 
 

ImageDimension constant

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

Method for creation through the object factory.

Reimplemented from itk::Object.

template<class TInputImage, class TOutputImage>
void itk::CannyEdgeDetectionImageFilter< 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::CannyEdgeDetectionImageFilter< TInputImage, TOutputImage >::SetLowerThreshold OutputImagePixelType  _arg  )  [virtual]
 

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

Set/Get the MaximumError paramter used by the Gaussian smoothing filter in this algorithm

Definition at line 167 of file itkCannyEdgeDetectionImageFilter.h.

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

Standard get/set macros for filter parameters.

template<class TInputImage, class TOutputImage>
virtual void itk::CannyEdgeDetectionImageFilter< TInputImage, TOutputImage >::SetOutsideValue OutputImagePixelType  _arg  )  [virtual]
 

template<class TInputImage, class TOutputImage>
void itk::CannyEdgeDetectionImageFilter< TInputImage, TOutputImage >::SetThreshold const OutputImagePixelType  th  )  [inline]
 

Definition at line 182 of file itkCannyEdgeDetectionImageFilter.h.

template<class TInputImage, class TOutputImage>
virtual void itk::CannyEdgeDetectionImageFilter< TInputImage, TOutputImage >::SetUpperThreshold OutputImagePixelType  _arg  )  [virtual]
 

* Set the Threshold value for detected edges. */

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

Set/Get the Variance parameter used by the Gaussian smoothing filter in this algorithm

Definition at line 151 of file itkCannyEdgeDetectionImageFilter.h.

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

Standard get/set macros for filter parameters.


The documentation for this class was generated from the following file:
Generated at Thu May 25 00:32:16 2006 for ITK by doxygen 1.3.5 written by Dimitri van Heesch, © 1997-2000