The Sobel Operator is used in Image Processing to get the edges in the image. It is a Discrete Differentiation Operator which computes an approximation of the gradient of the image intensity function.The Sobel operator is based on convolving the image with a small, separable, and integer valued filter in horizontal and vertical direction and is therefore relatively inexpensive in terms of computations. The sobel operator calculates the gradient of the image intensity at each point, giving the direction of the largest possible increase from light to dark and the rate of change in that direction. Each image point, the gradient vector points in the direction of largest possible intensity increase, and the length of the gradient vector corresponds to the rate of change in that direction.
Mathematically, the operator uses two 3×3 kernels which are convolved with the original image to calculate approximations of the derivatives - one for horizontal changes, and one for vertical.
Sobel Operator with OpenCV:
This is an image of Lenna with Sobel Operator applied on it.
import cv2 import cv2.cv as cv import numpy as np img = cv2.imread("filename", cv.CV_LOAD_IMAGE_GRAYSCALE) dst = cv2.Sobel(img, ddepth=cv.CV_32F, dx=1, dy=1, ksize=3) minv = np.min(dst) maxv = np.max(dst) cscale = 255/(maxv-minv) shift = -1*(minv) sobel_img = np.zeros(img.shape,dtype='uint8') sobel_img = cv2.convertScaleAbs(dst, sobel_img, cscale, shift/255.0) cv2.imshow("sobel",sobel_img) cv2.waitKey(0)
from SimpleCV import Image img = Image("lenna") sobel_gray_img = img.sobel() #sobel applied on grayscale sobel_img = img.sobel(doGray=False) #sobel applied on color image sobel_gray_img.show() sobel_img.show()
In cv2.Sobel, ddepth – Destination image depth. The following combination of src.depth() and ddepth are supported: CV_8U, CV_16U, CV_16S, CV_32F, CV_64F dx – Order of the derivative x. dy – Order of the derivative y. ksize – Size of the extended Sobel kernel. It must be 1, 3, 5, or 7.
The cv2.Sobel operators combine Gaussian smoothing and differentiation, so the result is more or less resistant to the noise.
P.S. GSoC 2012 Mid-Term Evaluations are ongoing.