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::HoughTransform2DLinesImageFilter< TInputPixelType, TOutputPixelType > Class Template Reference

Performs the Hough Transform to find 2D straight lines in a 2D image. More...

#include <itkHoughTransform2DLinesImageFilter.h>

Inheritance diagram for itk::HoughTransform2DLinesImageFilter< TInputPixelType, TOutputPixelType >:
Collaboration diagram for itk::HoughTransform2DLinesImageFilter< TInputPixelType, TOutputPixelType >:

List of all members.

Public Types

typedef SmartPointer< const SelfConstPointer
typedef InputImageType::IndexType IndexType
typedef
InputImageType::ConstPointer 
InputImageConstPointer
typedef InputImageType::Pointer InputImagePointer
typedef Image< TInputPixelType, 2 > InputImageType
typedef LineType::Pointer LinePointer
typedef LineType::LinePointType LinePointType
typedef LinesListType::size_type LinesListSizeType
typedef std::list< LinePointerLinesListType
typedef LineSpatialObject< 2 > LineType
typedef OutputImageType::Pointer OutputImagePointer
typedef InputImageType::RegionType OutputImageRegionType
typedef Image
< TOutputPixelType, 2 > 
OutputImageType
typedef InputImageType::PixelType PixelType
typedef SmartPointer< SelfPointer
typedef
HoughTransform2DLinesImageFilter 
Self
typedef ImageToImageFilter
< InputImageType,
OutputImageType
Superclass

Public Member Functions

virtual ::itk::LightObject::Pointer CreateAnother (void) const
void GenerateData ()
virtual float GetAngleResolution () const
LinesListTypeGetLines (unsigned int n=0)
virtual const char * GetNameOfClass () const
virtual OutputImageTypeGetSimplifyAccumulator ()
virtual float GetThreshold () const
virtual void SetAngleResolution (float _arg)
virtual void SetThreshold (float _arg)
void Simplify (void)
 typedef (Concept::GreaterThanComparable< PixelType, float >) InputGreaterThanFloatCheck
 typedef (Concept::AdditiveOperators< TOutputPixelType, int >) OutputPlusIntCheck
 typedef (Concept::Convertible< int, TOutputPixelType >) IntConvertibleToOutputCheck
virtual void SetNumberOfLines (unsigned int _arg)
virtual unsigned int GetNumberOfLines () const
virtual void SetDiscRadius (float _arg)
virtual float GetDiscRadius () const
virtual void SetVariance (float _arg)
virtual float GetVariance () const

Static Public Member Functions

static Pointer New ()

Protected Member Functions

void EnlargeOutputRequestedRegion (DataObject *output)
void GenerateInputRequestedRegion ()
void GenerateOutputInformation ()
 HoughTransform2DLinesImageFilter ()
void PrintSelf (std::ostream &os, Indent indent) const
virtual ~HoughTransform2DLinesImageFilter ()

Private Member Functions

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

Private Attributes

float m_AngleResolution
float m_DiscRadius
LinesListType m_LinesList
LinesListSizeType m_NumberOfLines
unsigned long m_OldModifiedTime
LinesListSizeType m_OldNumberOfLines
OutputImagePointer m_SimplifyAccumulator
float m_Threshold
float m_Variance

Detailed Description

template<typename TInputPixelType, typename TOutputPixelType>
class itk::HoughTransform2DLinesImageFilter< TInputPixelType, TOutputPixelType >

Performs the Hough Transform to find 2D straight lines in a 2D image.

This filter derives from ImageToImageFilter. The input is an image, and all pixels above some threshold are those to be extracted. The output is the image of the accumulator. GetLines() returns a list of LinesSpatialObjects.

Lines are parameterized in the form: R = x*vcl_cos(Teta)+y*vcl_sin(Teta) where R is the perpendicular distance from the origin and Teta the angle with the normal.

The output is the accumulator array: -The first dimension (X) represents the distance R from the corner to the line -The second dimension (Y) represents the angle between the X axis and the normal to the line.

The size of the array depends on the AngleAxisSize that could be set (500 by default) for the angle axis. The distance axis depends on the size of the diagonal of the input image.

See also:
LineSpatialObject
Wiki Examples:

Definition at line 62 of file itkHoughTransform2DLinesImageFilter.h.


Member Typedef Documentation

template<typename TInputPixelType , typename TOutputPixelType >
typedef SmartPointer< const Self > itk::HoughTransform2DLinesImageFilter< TInputPixelType, TOutputPixelType >::ConstPointer
template<typename TInputPixelType , typename TOutputPixelType >
typedef InputImageType::IndexType itk::HoughTransform2DLinesImageFilter< TInputPixelType, TOutputPixelType >::IndexType

Image index typedef

Definition at line 95 of file itkHoughTransform2DLinesImageFilter.h.

template<typename TInputPixelType , typename TOutputPixelType >
typedef InputImageType::ConstPointer itk::HoughTransform2DLinesImageFilter< TInputPixelType, TOutputPixelType >::InputImageConstPointer
template<typename TInputPixelType , typename TOutputPixelType >
typedef InputImageType::Pointer itk::HoughTransform2DLinesImageFilter< TInputPixelType, TOutputPixelType >::InputImagePointer
template<typename TInputPixelType , typename TOutputPixelType >
typedef Image< TInputPixelType, 2 > itk::HoughTransform2DLinesImageFilter< TInputPixelType, TOutputPixelType >::InputImageType
template<typename TInputPixelType , typename TOutputPixelType >
typedef LineType::Pointer itk::HoughTransform2DLinesImageFilter< TInputPixelType, TOutputPixelType >::LinePointer

Definition at line 85 of file itkHoughTransform2DLinesImageFilter.h.

template<typename TInputPixelType , typename TOutputPixelType >
typedef LineType::LinePointType itk::HoughTransform2DLinesImageFilter< TInputPixelType, TOutputPixelType >::LinePointType

Definition at line 87 of file itkHoughTransform2DLinesImageFilter.h.

template<typename TInputPixelType , typename TOutputPixelType >
typedef LinesListType::size_type itk::HoughTransform2DLinesImageFilter< TInputPixelType, TOutputPixelType >::LinesListSizeType

Definition at line 89 of file itkHoughTransform2DLinesImageFilter.h.

template<typename TInputPixelType , typename TOutputPixelType >
typedef std::list< LinePointer > itk::HoughTransform2DLinesImageFilter< TInputPixelType, TOutputPixelType >::LinesListType

Definition at line 86 of file itkHoughTransform2DLinesImageFilter.h.

template<typename TInputPixelType , typename TOutputPixelType >
typedef LineSpatialObject< 2 > itk::HoughTransform2DLinesImageFilter< TInputPixelType, TOutputPixelType >::LineType

Line typedef

Definition at line 84 of file itkHoughTransform2DLinesImageFilter.h.

template<typename TInputPixelType , typename TOutputPixelType >
typedef OutputImageType::Pointer itk::HoughTransform2DLinesImageFilter< TInputPixelType, TOutputPixelType >::OutputImagePointer
template<typename TInputPixelType , typename TOutputPixelType >
typedef InputImageType::RegionType itk::HoughTransform2DLinesImageFilter< TInputPixelType, TOutputPixelType >::OutputImageRegionType

Typedef to describe the output image region type.

Reimplemented from itk::ImageToImageFilter< Image< TInputPixelType, 2 >, Image< TOutputPixelType, 2 > >.

Definition at line 101 of file itkHoughTransform2DLinesImageFilter.h.

template<typename TInputPixelType , typename TOutputPixelType >
typedef Image< TOutputPixelType, 2 > itk::HoughTransform2DLinesImageFilter< TInputPixelType, TOutputPixelType >::OutputImageType

Output Image typedef

Reimplemented from itk::ImageSource< Image< TOutputPixelType, 2 > >.

Definition at line 76 of file itkHoughTransform2DLinesImageFilter.h.

template<typename TInputPixelType , typename TOutputPixelType >
typedef InputImageType::PixelType itk::HoughTransform2DLinesImageFilter< TInputPixelType, TOutputPixelType >::PixelType

Image pixel value typedef

Definition at line 98 of file itkHoughTransform2DLinesImageFilter.h.

template<typename TInputPixelType , typename TOutputPixelType >
typedef SmartPointer< Self > itk::HoughTransform2DLinesImageFilter< TInputPixelType, TOutputPixelType >::Pointer

Smart pointer typedef support.

Reimplemented from itk::ImageToImageFilter< Image< TInputPixelType, 2 >, Image< TOutputPixelType, 2 > >.

Definition at line 80 of file itkHoughTransform2DLinesImageFilter.h.

template<typename TInputPixelType , typename TOutputPixelType >
typedef HoughTransform2DLinesImageFilter itk::HoughTransform2DLinesImageFilter< TInputPixelType, TOutputPixelType >::Self
template<typename TInputPixelType , typename TOutputPixelType >
typedef ImageToImageFilter< InputImageType, OutputImageType > itk::HoughTransform2DLinesImageFilter< TInputPixelType, TOutputPixelType >::Superclass

Standard "Superclass" typedef.

Reimplemented from itk::ImageToImageFilter< Image< TInputPixelType, 2 >, Image< TOutputPixelType, 2 > >.

Definition at line 92 of file itkHoughTransform2DLinesImageFilter.h.


Constructor & Destructor Documentation

template<typename TInputPixelType , typename TOutputPixelType >
itk::HoughTransform2DLinesImageFilter< TInputPixelType, TOutputPixelType >::HoughTransform2DLinesImageFilter ( ) [protected]

End concept checking

template<typename TInputPixelType , typename TOutputPixelType >
virtual itk::HoughTransform2DLinesImageFilter< TInputPixelType, TOutputPixelType >::~HoughTransform2DLinesImageFilter ( ) [inline, protected, virtual]

Definition at line 166 of file itkHoughTransform2DLinesImageFilter.h.

template<typename TInputPixelType , typename TOutputPixelType >
itk::HoughTransform2DLinesImageFilter< TInputPixelType, TOutputPixelType >::HoughTransform2DLinesImageFilter ( const Self ) [private]

Member Function Documentation

template<typename TInputPixelType , typename TOutputPixelType >
virtual::itk::LightObject::Pointer itk::HoughTransform2DLinesImageFilter< TInputPixelType, TOutputPixelType >::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<typename TInputPixelType , typename TOutputPixelType >
void itk::HoughTransform2DLinesImageFilter< TInputPixelType, TOutputPixelType >::EnlargeOutputRequestedRegion ( DataObject output) [protected, virtual]

HoughTransform2DLinesImageFilter must produce the entire output

Reimplemented from itk::ProcessObject.

template<typename TInputPixelType , typename TOutputPixelType >
void itk::HoughTransform2DLinesImageFilter< TInputPixelType, TOutputPixelType >::GenerateData ( ) [virtual]

Method for evaluating the implicit function over the image.

Reimplemented from itk::ImageSource< Image< TOutputPixelType, 2 > >.

template<typename TInputPixelType , typename TOutputPixelType >
void itk::HoughTransform2DLinesImageFilter< TInputPixelType, TOutputPixelType >::GenerateInputRequestedRegion ( ) [protected, virtual]
template<typename TInputPixelType , typename TOutputPixelType >
void itk::HoughTransform2DLinesImageFilter< TInputPixelType, TOutputPixelType >::GenerateOutputInformation ( ) [protected, virtual]

HoughTransform2DLinesImageFilter's output is the accumulator array. The size of the output is a function of the size of the input and the AngleAxisSize. Since this output is a different size than the input, it must provide an implementation of GenerateOutputInformation.

See also:
ProcessObject::GenerateOutputRequestedRegion()

Reimplemented from itk::ProcessObject.

template<typename TInputPixelType , typename TOutputPixelType >
virtual float itk::HoughTransform2DLinesImageFilter< TInputPixelType, TOutputPixelType >::GetAngleResolution ( ) const [virtual]

Get the resolution angle

template<typename TInputPixelType , typename TOutputPixelType >
virtual float itk::HoughTransform2DLinesImageFilter< TInputPixelType, TOutputPixelType >::GetDiscRadius ( ) const [virtual]

Set/Get the radius of the disc to remove from the accumulator for each line found

template<typename TInputPixelType , typename TOutputPixelType >
LinesListType& itk::HoughTransform2DLinesImageFilter< TInputPixelType, TOutputPixelType >::GetLines ( unsigned int  n = 0)

Get the list of lines. This recomputes the lines

template<typename TInputPixelType , typename TOutputPixelType >
virtual const char* itk::HoughTransform2DLinesImageFilter< TInputPixelType, TOutputPixelType >::GetNameOfClass ( ) const [virtual]

Run-time type information (and related methods).

Reimplemented from itk::ImageToImageFilter< Image< TInputPixelType, 2 >, Image< TOutputPixelType, 2 > >.

template<typename TInputPixelType , typename TOutputPixelType >
virtual unsigned int itk::HoughTransform2DLinesImageFilter< TInputPixelType, TOutputPixelType >::GetNumberOfLines ( ) const [virtual]

Set/Get the number of lines to extract

template<typename TInputPixelType , typename TOutputPixelType >
virtual OutputImageType* itk::HoughTransform2DLinesImageFilter< TInputPixelType, TOutputPixelType >::GetSimplifyAccumulator ( ) [virtual]

Get the Simplified accumulator

template<typename TInputPixelType , typename TOutputPixelType >
virtual float itk::HoughTransform2DLinesImageFilter< TInputPixelType, TOutputPixelType >::GetThreshold ( ) const [virtual]

Get the threshold value

template<typename TInputPixelType , typename TOutputPixelType >
virtual float itk::HoughTransform2DLinesImageFilter< TInputPixelType, TOutputPixelType >::GetVariance ( ) const [virtual]

Set the variance of the gaussian bluring for the accumulator

template<typename TInputPixelType , typename TOutputPixelType >
static Pointer itk::HoughTransform2DLinesImageFilter< TInputPixelType, TOutputPixelType >::New ( ) [static]

Method for creation through the object factory.

Reimplemented from itk::Object.

template<typename TInputPixelType , typename TOutputPixelType >
void itk::HoughTransform2DLinesImageFilter< TInputPixelType, TOutputPixelType >::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< Image< TInputPixelType, 2 >, Image< TOutputPixelType, 2 > >.

template<typename TInputPixelType , typename TOutputPixelType >
void itk::HoughTransform2DLinesImageFilter< TInputPixelType, TOutputPixelType >::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< Image< TInputPixelType, 2 >, Image< TOutputPixelType, 2 > >.

template<typename TInputPixelType , typename TOutputPixelType >
virtual void itk::HoughTransform2DLinesImageFilter< TInputPixelType, TOutputPixelType >::SetAngleResolution ( float  _arg) [virtual]

Set the resolution angle: The hough space descibes (in the angle direction) [-PI,PI[ with a constant stepe AngleResolution

template<typename TInputPixelType , typename TOutputPixelType >
virtual void itk::HoughTransform2DLinesImageFilter< TInputPixelType, TOutputPixelType >::SetDiscRadius ( float  _arg) [virtual]

Set/Get the radius of the disc to remove from the accumulator for each line found

template<typename TInputPixelType , typename TOutputPixelType >
virtual void itk::HoughTransform2DLinesImageFilter< TInputPixelType, TOutputPixelType >::SetNumberOfLines ( unsigned int  _arg) [virtual]

Set/Get the number of lines to extract

template<typename TInputPixelType , typename TOutputPixelType >
virtual void itk::HoughTransform2DLinesImageFilter< TInputPixelType, TOutputPixelType >::SetThreshold ( float  _arg) [virtual]

Set the threshold above which the filter should consider the point as a valid point

template<typename TInputPixelType , typename TOutputPixelType >
virtual void itk::HoughTransform2DLinesImageFilter< TInputPixelType, TOutputPixelType >::SetVariance ( float  _arg) [virtual]

Set the variance of the gaussian bluring for the accumulator

template<typename TInputPixelType , typename TOutputPixelType >
void itk::HoughTransform2DLinesImageFilter< TInputPixelType, TOutputPixelType >::Simplify ( void  )

Simplify the accumulator

template<typename TInputPixelType , typename TOutputPixelType >
itk::HoughTransform2DLinesImageFilter< TInputPixelType, TOutputPixelType >::typedef ( Concept::AdditiveOperators< TOutputPixelType, int >  )

This class requires OutputPlusIntCheck in the form of ( Concept::AdditiveOperators< TOutputPixelType, int > )

template<typename TInputPixelType , typename TOutputPixelType >
itk::HoughTransform2DLinesImageFilter< TInputPixelType, TOutputPixelType >::typedef ( Concept::Convertible< int, TOutputPixelType >  )

Begin concept checking This class requires IntConvertibleToOutputCheck in the form of ( Concept::Convertible< int, TOutputPixelType > )

template<typename TInputPixelType , typename TOutputPixelType >
itk::HoughTransform2DLinesImageFilter< TInputPixelType, TOutputPixelType >::typedef ( Concept::GreaterThanComparable< PixelType, float >  )

This class requires InputGreaterThanFloatCheck in the form of ( Concept::GreaterThanComparable< PixelType, float > )


Member Data Documentation

template<typename TInputPixelType , typename TOutputPixelType >
float itk::HoughTransform2DLinesImageFilter< TInputPixelType, TOutputPixelType >::m_AngleResolution [private]

Definition at line 191 of file itkHoughTransform2DLinesImageFilter.h.

template<typename TInputPixelType , typename TOutputPixelType >
float itk::HoughTransform2DLinesImageFilter< TInputPixelType, TOutputPixelType >::m_DiscRadius [private]

Definition at line 196 of file itkHoughTransform2DLinesImageFilter.h.

template<typename TInputPixelType , typename TOutputPixelType >
LinesListType itk::HoughTransform2DLinesImageFilter< TInputPixelType, TOutputPixelType >::m_LinesList [private]

Definition at line 194 of file itkHoughTransform2DLinesImageFilter.h.

template<typename TInputPixelType , typename TOutputPixelType >
LinesListSizeType itk::HoughTransform2DLinesImageFilter< TInputPixelType, TOutputPixelType >::m_NumberOfLines [private]

Definition at line 195 of file itkHoughTransform2DLinesImageFilter.h.

template<typename TInputPixelType , typename TOutputPixelType >
unsigned long itk::HoughTransform2DLinesImageFilter< TInputPixelType, TOutputPixelType >::m_OldModifiedTime [private]

Definition at line 198 of file itkHoughTransform2DLinesImageFilter.h.

template<typename TInputPixelType , typename TOutputPixelType >
LinesListSizeType itk::HoughTransform2DLinesImageFilter< TInputPixelType, TOutputPixelType >::m_OldNumberOfLines [private]

Definition at line 199 of file itkHoughTransform2DLinesImageFilter.h.

template<typename TInputPixelType , typename TOutputPixelType >
OutputImagePointer itk::HoughTransform2DLinesImageFilter< TInputPixelType, TOutputPixelType >::m_SimplifyAccumulator [private]

Definition at line 193 of file itkHoughTransform2DLinesImageFilter.h.

template<typename TInputPixelType , typename TOutputPixelType >
float itk::HoughTransform2DLinesImageFilter< TInputPixelType, TOutputPixelType >::m_Threshold [private]

Definition at line 192 of file itkHoughTransform2DLinesImageFilter.h.

template<typename TInputPixelType , typename TOutputPixelType >
float itk::HoughTransform2DLinesImageFilter< TInputPixelType, TOutputPixelType >::m_Variance [private]

Definition at line 197 of file itkHoughTransform2DLinesImageFilter.h.


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