Main Page   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members   Related Pages  

vtkLinkEdgels Class Reference

links edgels together to form digital curves. More...

#include <vtkLinkEdgels.h>

Inheritance diagram for vtkLinkEdgels:

Inheritance graph
[legend]
Collaboration diagram for vtkLinkEdgels:

Collaboration graph
[legend]
List of all members.

Public Methods

virtual const char * GetClassName ()
virtual int IsA (const char *type)
void PrintSelf (ostream &os, vtkIndent indent)
virtual void SetLinkThreshold (float)
virtual float GetLinkThreshold ()
virtual void SetPhiThreshold (float)
virtual float GetPhiThreshold ()
virtual void SetGradientThreshold (float)
virtual float GetGradientThreshold ()

Static Public Methods

int IsTypeOf (const char *type)
vtkLinkEdgels * SafeDownCast (vtkObject *o)
vtkLinkEdgels * New ()

Protected Methods

 vtkLinkEdgels ()
 ~vtkLinkEdgels ()
 vtkLinkEdgels (const vtkLinkEdgels &)
void operator= (const vtkLinkEdgels &)
void Execute ()
void LinkEdgels (int xdim, int ydim, float *image, vtkVectors *inVectors, vtkCellArray *newLines, vtkPoints *newPts, vtkScalars *outScalars, vtkVectors *outVectors, int z)

Protected Attributes

float GradientThreshold
float PhiThreshold
float LinkThreshold

Detailed Description

links edgels together to form digital curves.

Date:
2000/12/10 20:08:42
Revision:
1.20

vtkLinkEdgels links edgels into digital curves which are then stored as polylines. The algorithm works one pixel at a time only looking at its immediate neighbors. There is a GradientThreshold that can be set that eliminates any pixels with a smaller gradient value. This can be used as the lower threshold of a two value edgel thresholding.

For the remaining edgels, links are first tried for the four connected neighbors. A successful neighbor will satisfy three tests. First both edgels must be above the gradient threshold. Second, the difference between the orientation between the two edgels (Alpha) and each edgels orientation (Phi) must be less than LinkThreshold. Third, the difference between the two edgels Phi values must be less than PhiThreshold. The most successful link is selected. The measure is simply the sum of the three angle differences (actually stored as the sum of the cosines). If none of the four connect neighbors succeeds, then the eight connect neighbors are examined using the same method.

This filter requires gradient information so you will need to use a vtkImageGradient at some point prior to this filter. Typically a vtkNonMaximumSuppression filter is also used. vtkThresholdEdgels can be used to complete the two value edgel thresholding as used in a Canny edge detector. The vtkSubpixelPositionEdgels filter can also be used after this filter to adjust the edgel locations.

See also:
vtkImage vtkImageGradient vtkNonMaximumSuppression
Examples:
vtkLinkEdgels (examples)

Definition at line 81 of file vtkLinkEdgels.h.


Constructor & Destructor Documentation

vtkLinkEdgels::vtkLinkEdgels   [protected]
 

vtkLinkEdgels::~vtkLinkEdgels   [inline, protected]
 

Definition at line 106 of file vtkLinkEdgels.h.

vtkLinkEdgels::vtkLinkEdgels const vtkLinkEdgels &    [inline, protected]
 

Definition at line 107 of file vtkLinkEdgels.h.


Member Function Documentation

virtual const char* vtkLinkEdgels::GetClassName   [virtual]
 

Return the class name as a string. This method is defined in all subclasses of vtkObject with the vtkTypeMacro found in vtkSetGet.h.

Reimplemented from vtkStructuredPointsToPolyDataFilter.

int vtkLinkEdgels::IsTypeOf const char *    type [static]
 

Return 1 if this class type is the same type of (or a subclass of) the named class. Returns 0 otherwise. This method works in combination with vtkTypeMacro found in vtkSetGet.h.

Reimplemented from vtkStructuredPointsToPolyDataFilter.

virtual int vtkLinkEdgels::IsA const char *    type [virtual]
 

Return 1 if this class is the same type of (or a subclass of) the named class. Returns 0 otherwise. This method works in combination with vtkTypeMacro found in vtkSetGet.h.

Reimplemented from vtkStructuredPointsToPolyDataFilter.

vtkLinkEdgels* vtkLinkEdgels::SafeDownCast vtkObject   o [static]
 

Will cast the supplied object to vtkObject* is this is a safe operation (i.e., a safe downcast); otherwise NULL is returned. This method is defined in all subclasses of vtkObject with the vtkTypeMacro found in vtkSetGet.h.

Reimplemented from vtkStructuredPointsToPolyDataFilter.

void vtkLinkEdgels::PrintSelf ostream &    os,
vtkIndent    indent
[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 vtkSource.

vtkLinkEdgels* vtkLinkEdgels::New   [static]
 

Construct instance of vtkLinkEdgels with GradientThreshold set to 0.1, PhiThreshold set to 90 degrees and LinkThreshold set to 90 degrees.

Reimplemented from vtkPolyDataSource.

virtual void vtkLinkEdgels::SetLinkThreshold float    [virtual]
 

Set/Get the threshold for Phi vs. Alpha link thresholding.

virtual float vtkLinkEdgels::GetLinkThreshold   [virtual]
 

virtual void vtkLinkEdgels::SetPhiThreshold float    [virtual]
 

Set/get the threshold for Phi vs. Phi link thresholding.

virtual float vtkLinkEdgels::GetPhiThreshold   [virtual]
 

virtual void vtkLinkEdgels::SetGradientThreshold float    [virtual]
 

Set/Get the threshold for image gradient thresholding.

virtual float vtkLinkEdgels::GetGradientThreshold   [virtual]
 

void vtkLinkEdgels::operator= const vtkLinkEdgels &    [inline, protected]
 

Definition at line 108 of file vtkLinkEdgels.h.

void vtkLinkEdgels::Execute   [protected, virtual]
 

Reimplemented from vtkSource.

void vtkLinkEdgels::LinkEdgels int    xdim,
int    ydim,
float *    image,
vtkVectors   inVectors,
vtkCellArray   newLines,
vtkPoints   newPts,
vtkScalars   outScalars,
vtkVectors   outVectors,
int    z
[protected]
 


Member Data Documentation

float vtkLinkEdgels::GradientThreshold [protected]
 

Definition at line 115 of file vtkLinkEdgels.h.

float vtkLinkEdgels::PhiThreshold [protected]
 

Definition at line 116 of file vtkLinkEdgels.h.

float vtkLinkEdgels::LinkThreshold [protected]
 

Definition at line 117 of file vtkLinkEdgels.h.


The documentation for this class was generated from the following file:
Generated on Wed Nov 21 12:52:46 2001 for VTK by doxygen1.2.11.1 written by Dimitri van Heesch, © 1997-2001