Canny边缘检测


检测指标

低错误率: 标识出尽可能多的实际边缘,同时尽可能的减少噪声产生的误报。
高定位性: 标识出的边缘要与图像中的实际边缘尽可能接近。
最小响应: 图像中的边缘只能标识一次。


提示:以下是本篇文章正文内容,下面案例可供参考

一、步骤

消除噪声。 使用高斯平滑滤波器卷积降噪。 下面显示了一个 的高斯内核示例:

计算梯度幅值和方向。 此处,按照Sobel滤波器的步骤:
运用一对卷积阵列计算x及y方向的梯度。

梯度方向近似到四个可能角度之一(一般 0, 45, 90, 135)
通过x及y方向的梯度值计算,可以解出梯度的角度。

对梯度结果进行非极大值抑制。 这一步排除非边缘像素, 仅仅保留了一些细线条(候选边缘)。
非极大值抑制,简称为NMS算法,英文为Non-Maximum Suppression。其思想是搜素局部最大值,抑制极大值。NMS算法在不同应用中的具体实现不太一样,但思想是一样的。非极大值抑制,在计算机视觉任务中得到了广泛的应用,例如边缘检测、人脸检测、目标检测(DPM,YOLO,SSD,Faster R-CNN)等。
IoU:intersection-over-union,即两个边界框的交集部分除以它们的并集。

非极大值抑制的流程如下:

根据置信度得分进行排序

选择置信度最高的比边界框添加到最终输出列表中,将其从边界框列表中删除

计算所有边界框的面积

计算置信度最高的边界框与其它候选框的IoU。

删除IoU大于阈值的边界框

重复上述过程,直至边界框列表为空。
滞后阈值: 最后一步,Canny 使用了滞后阈值,滞后阈值需要两个阈值(高阈值和低阈值):

如果某一像素位置的幅值超过 高 阈值, 该像素被保留为边缘像素。
如果某一像素位置的幅值小于 低 阈值, 该像素被排除。
如果某一像素位置的幅值在两个阈值之间,该像素仅仅在连接到一个高于高阈值的像素时被保留。
void cv::Canny(InputArrayimage,(输入图像:8-bit)OutputArrayedges,(输出边缘图像:单通道,8-bit,size与输入图像一致)doublethreshold1,(阈值1)doublethreshold2,(阈值2)intapertureSize=3,(Sober算子大小)boolL2gradient=false(是否采用更精确的方式计算图像梯度)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

颢师傅

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值