SoZeroCrossingsProcessing2d engine More...
#include <ImageViz/Engines/EdgeDetection/EdgeMarking/SoZeroCrossingsProcessing2d.h>
Public Member Functions | |
SoZeroCrossingsProcessing2d () | |
Public Attributes | |
SoSFImageDataAdapter | inImage |
SoImageVizEngineOutput < SoSFImageDataAdapter, SoImageDataAdapter * > | outBinarylImage |
For an introduction to edge marking, see section Introduction to Edge Marking.
Zero-crossings are points where the Laplacian switches from positive to negative values, and vice versa.
A simple zero-crossing detection is obtained by thresholding the Laplacian to retain positive intensities, then detecting the boundaries of the binary image, as in Figure 1. Such zero-crossing points are not precisely located.
Figure 1: Thresholding a laplacian to determine the zero crossings
ZERO-CROSSINGS is even better to mark a point if the laplacian changes its sign in its 3x3 neighbourhood, and if the laplacian magnitude is smaller than all magnitudes in that neighbourhood, as in Figure 2.
Figure 2: Zero-crossing a laplacian
Compared to thresholding of a gradient, zero-crossings have the advantage of producing closed curves of 1 pixel thickness. This is most interesting when precise object boundary detection is the goal.
inImage | NULL |
SoZeroCrossingsProcessing2d::SoZeroCrossingsProcessing2d | ( | ) |
Constructor.
The input image.
Default value is NULL. Supported types include: grayscale binary label color image.
SoImageVizEngineOutput<SoSFImageDataAdapter,SoImageDataAdapter*> SoZeroCrossingsProcessing2d::outBinarylImage |
The output binary image.
Default value is NULL. Supported types include: binary image.