Fu Xianjun. All Rights Reserved.
文章目录
- 前言
- 二、使用步骤
- 1.Sobel算子
- 2.Laplacian算子
- 3.Canny边缘检测
- 总结
前言
Sobel 算子是一种离散的微分算子,该算子结合了高斯平滑和微分求导运算。该
算子利用局部差分寻找边缘,计算所得的是一个梯度的近似值。
使用步骤
1.Sobel算子
dst=cv2.Sobeldst=cv2.Sobel((src,ddepth,dx,dy[,ksize[,scale[,delta[,borderType]]]]src,ddepth,dx,dy[,ksize[,scale[,delta[,borderType]]]]))
1.dx代表x方向上的求导阶数
2.dy代表y方向上的求导阶数
3.ksize代表Sobel核的大小。该值为-1时,则会使用Scharr算子进行运算。
4.scale代表计算导数值时所采用的缩放因子,默认情况下该值是1,是没有缩放的
5.delta代表加在目标图像dst上的值,该值是可选的,默认为0
通常要将函数cv2.Sobel()内参数ddepth的值设置为“cv2.CV_64F”
计算x方向和y方向的边缘叠加:通过组合方式实现:
dx=cv2.Sobel(src ,ddepth ,1 ,0)
dy=cv2.Sobel(src ,ddepth ,0 ,1)
dst=cv2.addWeighted(src1 ,alpha ,src2 ,beta ,gamma)
2.Laplacian算子
dst=cv2.Laplacian(src,ddepth[,ksize[,scale[,delta[,borderType]]]])
ksize代表用于计算二阶导数的核尺寸大小。该值必须是正的奇数
3.Canny边缘检测
edges=cv2.Canny(image,threshold1,threshold2[,apertureSize[,L2gradient]])
threshold1表示处理过程中的第一个阈值。
threshold2表示处理过程中的第二个阈值。
apertureSize表示Sobel算子的孔径大小。
L2gradient为计算图像梯度幅度(gradient magnitude)的标识。其默认值为False。
总结
Canny边缘检测基础为重中之重,梯度算子数学意义为难点