提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
- 前言
- Canny边缘检测
- 总结
前言
Canny边缘检测是一种使用多级边缘检测算法检测边缘的方法。以下内容参考了小傅老师的案例 @Fu Xianjun. All Rights Reserved.
提示:以下是本篇文章正文内容,下面案例可供参考
1.Canny边缘检测
Step1 由于图像边缘非常容易受到噪声的干扰,通常需要对图像进行滤波以去除噪声。滤波的目的是平滑一些纹理较弱的非边缘区域,以便得到更准确的边缘。滤波器的大小也是可变的,高斯核的大小对于边缘检测的效果具有很重要的作用。去噪滤波器的核越大,边缘信息对于噪声的敏感度就越低,但边缘检测的定位错误也会随之增加。
Step2 边缘检测算子返回水平方向的Gx和垂直方向的Gy
在计算梯度时,我们会得到梯度的幅度和角度(代表梯
度的方向)两个值。
Step3 在获得了梯度的幅度和方向后,遍历图像中的像素点,去除所有非边缘的点。如果该点是正/负梯度方向上的局部最大值,则保留该点。如果不是,则抑制该点(归零)
Stpe4剔除存在边缘图像内的因噪声产生的虚边缘:
①高阈值 maxVal ②低阈值 minVal
与强边缘连接,则将该边缘处理为边缘。
与强边缘无连接,则该边缘为弱边缘,将其抑制。
edges=cv2.Canny(image,threshold1,threshold2[,apertureSize[,L2gradient]])
threshold1表示处理过程中的第一个阈值。
threshold2表示处理过程中的第二个阈值。
apertureSize表示Sobel算子的孔径大小。
L2gradient为计算图像梯度幅度(gradient magnitude)的标识。其默认值为False。
总结
学open cv 要耐心学,好好学
这是最基本的代码
加油!