Soble,Canny ,Laplace
(1)图像的像素理解为一个矩阵,求导就是对二维离散函数求导。
Sobel算子就是利用一阶导数求出边缘的,这很好理解,由于边缘处的像素会发生突变,所以求导之后的值就会变得相对比较大。
(2)canny算子主要是利用4个步骤完成,除去噪声,计算梯度阈值和方向,非极大值抑制,滞后抑制。
(3)Laplace,使用二阶导进行检测,在opencv里面调用两次的sobel算子。
#图像的边缘检测
img = cv2.imread('1.png')
(x,y) = img.shape[0:2]
cv2.imshow('img',img)
#颜色空间转换
grey=cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
cv2.imshow('grey',grey)
#求x方向的导数
Sobel_x=cv2.Sobel(img,-1,1,0,ksize=3)
Sobel_y=cv2.Sobel(img,-1,0,1,ksize=3)
Sobel_xy=cv2.Sobel(Sobel_x,-1,0,1,ksize=3)
#图像显示
cv2.imshow('Sobel_x',Sobel_x)
cv2.imshow('Sobel_y',Sobel_y)
cv2.imshow('Sobel_xy',Sobel_xy)
cv2.waitKey(0)
cv2.destroyAllWindows()
** sobel**算子