zxhproj v 2.2
zxhproj

zxhEdgeCannyT< PixelType > Class Template Reference

zxhEdgeCanny.cpp return canny edge contour points image, no gaussian filter is applied here More...

#include <zxhEdgeCanny.h>

Inheritance diagram for zxhEdgeCannyT< PixelType >:
zxhEdgeBaseT< PixelType > zxhMultiCannyEdge

List of all members.

Public Member Functions

virtual bool Evaluate ()
bool EvaluateCannyImage ()
zxhImageDataT< float > * GetCannyImage ()
bool RemoveSmallConnectRegions (float fFraction=0.01)
void SetThreshold (float low, float high)
void GetThreshold (float &low, float &high)

Protected Member Functions

bool ThresholdEdgePoint ()
 2) Threshold and searching edge point candidates
bool Hysteresis ()
 3) Hysteresis

Protected Attributes

zxhImageDataT< float > m_CannyImage
zxhImageData m_imgResampleImage
zxhImageDataT< float > m_imgResampleImageGradientMag
float m_Threshold [2]

Detailed Description

template<class PixelType = PixelTypeDefault>
class zxhEdgeCannyT< PixelType >

zxhEdgeCanny.cpp return canny edge contour points image, no gaussian filter is applied here


Member Function Documentation

template<class PixelType >
bool zxhEdgeCannyT< PixelType >::Evaluate ( ) [virtual]

run algorithm to compute the edge image, return whether success 1) compute differentiate 2) Threshold 3)hysteresis

run algorithm to compute the edge image, return whether success 1) compute differentiate=EvaluateCannyImage 2) Threshold 3)hysteresis

Implements zxhEdgeBaseT< PixelType >.

Reimplemented in zxhMultiCannyEdge.

template<class PixelType >
bool zxhEdgeCannyT< PixelType >::EvaluateCannyImage ( )

1) only compute differentiate c(x,y,z) = [fxx * fx^2 + fyy * fy^2 + fzz * fz^2 + 2( fx*fy*fxy + fx*fz*fxz + fy*fz*fyz )]/(fx^2 + fy^2 + fz^2);

1) compute differentiate c(x,y,z) = [fxx * fx^2 + fyy * fy^2 + fzz * fz^2 + 2( fx*fy*fxy + fx*fz*fxz + fy*fz*fyz )]/(fx^2 + fy^2 + fz^2);

template<class PixelType >
bool zxhEdgeCannyT< PixelType >::Hysteresis ( ) [protected]

3) Hysteresis

3) Hysteresis change -1 and -3 into Foreground and -2 and 0 into background

template<class PixelType = PixelTypeDefault>
bool zxhEdgeCannyT< PixelType >::RemoveSmallConnectRegions ( float  fFraction = 0.01)

remove small regions if the region's connected pixels is smaller than fFraction of total region pixels then remove them


Member Data Documentation

template<class PixelType = PixelTypeDefault>
zxhImageDataT<float> zxhEdgeCannyT< PixelType >::m_CannyImage [protected]

store the second order canny image c(x,y,z) = [fxx * fx^2 + fyy * fy^2 + fzz * fz^2 + 2( fx*fy*fxy + fx*fz*fxz + fy*fz*fyz )]/(fx^2 + fy^2 + fz^2);


The documentation for this class was generated from the following file:
 All Classes Namespaces Functions Variables Typedefs