python边缘提取_OpenCV-Python学习(十四):Canny边缘提取算法

本文详细介绍了Canny边缘检测算法的原理和步骤,包括图像灰度化、高斯滤波、梯度计算、非极大值抑制以及双阈值边缘连接处理。并展示了使用OpenCV库进行Canny边缘检测的Python代码示例,通过实例解释了如何应用Canny函数处理图像。
摘要由CSDN通过智能技术生成

目标:

1.Canny算法

2.OpenCV函数:Canny()

一、Canny算法

Canny算法是一种边缘检测算法,步骤如下:

Canny边缘检查算法步骤:

1.彩色图转化为灰度图

2.应用高斯滤波来平滑图像-->去除噪声

由于边缘检测容易受到图像中噪声的影响

3.找寻图像的强度梯度

Canny的基本思想是找寻一幅图像中强度变化最强的位置。所谓的变化最强,即指梯度方向。

平滑后的图像中每个像素点的梯度可以由Sobel算子来获得:

1)首先,利用Sobel算子得到沿x轴和y轴方向的梯度G_x和G_y。

2)由G_X和G_Y便可计算每一个像素点的梯度幅值G。

3)接着,每一个像素点用G代替。对于变化剧烈的边界处,G值越大,对应的颜色为白色。

4)然后,这些边界通常非常粗,难以标定边界的真正位置,还必须存储梯度的方向θ。

4.应用非极大抑制技术来消除边误检(本来不是边缘但检测出来是)

沿着梯度θ方向上比较该像素点,若该像素点与两侧相比最大则保留,否则抑制(置为0)。

这一步的目的是将模糊的边界变得清晰,剔除一大部分不是边缘的点。

5.双阈值边缘连接处理

规则:设定两个阈值,minVal和maxVal。

大于maxVal的边缘肯定是边缘(保留),低于minVal的边缘是非边缘(舍去)。

对于介于两者之间的值,判断是否与真正的边界(强边界)相连,相连就保留,否则丢弃。

6.二

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值