cv.Sobel - MATLAB File Help
cv.Sobel

Calculates the first, second, third, or mixed image derivatives using an extended Sobel operator

dst = cv.Sobel(src)
dst = cv.Sobel(..., 'OptionName', optionValue, ...)

Input

Output

Options

In all cases except one, the KSize x KSize separable kernel is used to calculate the derivative. When KSize=1, the 3x1 or 1x3 kernel is used (that is, no Gaussian smoothing is done). KSize=1 can only be used for the first or the second x- or y- derivatives.

There is also the special value KSize=-1 or KSize='Scharr' that corresponds to the 3x3 Scharr filter that may give more accurate results than the 3x3 Sobel. The Scharr aperture is:

[-3 0 3; -10 0 10; -3 0 3]

for the x-derivative, or transposed for the y-derivative.

The function calculates an image derivative by convolving the image with the appropriate kernel:

            partial^(XOrder+YOrder) src
dst = ---------------------------------------
       partial x^(XOrder) partial y^(YOrder)

The Sobel operators combine Gaussian smoothing and differentiation, so the result is more or less resistant to the noise. Most often, the function is called with (XOrder = 1, YOrder = 0, KSize = 3) or (XOrder = 0, YOrder = 1, KSize = 3) to calculate the first x- or y- image derivative. The first case corresponds to a kernel of:

[-1 0 1; -2 0 2; -1 0 1]

The second case corresponds to a kernel of:

[-1 -2 -1; 0 0 0; 1 2 1]
See also