The Laplace and Canny transforms
Another quite useful operator to find edges is the Laplacian transformation. Instead of relying on the first order derivatives, OpenCV's Laplacian transformation implements the discrete operator for the following function:
The matrix can be approximated to the convolution with the following kernel when using finite difference methods and a 3x3 aperture:
The signature for the preceding function is as follows:
Laplacian(Mat source, Mat destination, int ddepth)
While source and destination matrices are simple parameters, ddepth
is the depth of the destination matrix. When you set this parameter to -1
, it will have the same depth as the source image, although you might want more depth when you apply this operator. Besides this, there are overloaded versions of this method that receive an aperture size, a scale factor, and an adding scalar.
Besides using the Laplacian method, you can also use the Canny algorithm, which is an excellent approach that was proposed...