Code
title: Canny边缘检测-论鸡尾酒疗法 |
Canny 边缘检测算法被很多人认为是边缘检测的最优算法,为什么说它是最优算法呢?我们参考一下业界的评判标准:
- 低错误率: 标识出尽可能多的实际边缘,同时尽可能的减少噪声产生的误报。
- 高定位性: 标识出的边缘要与图像中的实际边缘尽可能接近。
- 最小响应: 图像中的边缘只能标识一次。
那么问题来了,我们都已经介绍过Sobel、Laplace这种一阶或二阶的算子了,Canny算子又是什么?它又是凭什么获得最优这个称号的?
什么是Canny边缘检测?
Canny 边缘检测算法其实就是 John F. Canny 于 1986年开发出来的一个多级边缘检测算法,用Canny的名字命名,用来检测图像边缘的一种算法。
它为什么这么厉害?
Canny一定是调酒大师,简单的素材在他手里组合一下就焕发了新的活力。简单的回答是,Canny合理的运用了滤波、一阶、二阶边缘检测、边缘细化以及关键的提出了“双阈值边缘连接处理”,把这些基础简单的算法组合一下,达到了最优的效果。可以参考下面的顺序:
- 彩色图像转换为灰度图像
- 对图像进行高斯模糊
- 计算图像梯度,根据梯度计算图像边缘幅值与角度
- 非最大信号压制处理(边缘细化)
- 双阈值边缘连接处理
- 二值化图像输出结果
彩色图像转换为灰度图像
这个不用过多解释了把,cvtColor。因为Canny只能处理灰度图像,而且转换的最终结果是二值图。所以如果是彩色图,转换后才能灰度图还是很有必要的
对图像进行高斯模糊
在Canny内部,已经做了一个size=5的高斯滤波,可以参考如下内核算子。但是需要注意的是,在做Canny之前是否要再做一次高斯滤波是非常值得考究的事情。
计算图像梯度,根据梯度计算图像边缘幅值与角度
最大信号压制处理(边缘细化)
双阈值边缘连接处理
二值化图像输出结果
参考https://blog.csdn.net/weixin_40647819/article/details/91411424