千家信息网

为什么opencv的canny函数检测边缘的效果和matlab的不同

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,这篇文章将为大家详细讲解有关为什么opencv的canny函数检测边缘的效果和matlab的不同,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。可以明显
千家信息网最后更新 2026年11月01日为什么opencv的canny函数检测边缘的效果和matlab的不同

这篇文章将为大家详细讲解有关为什么opencv的canny函数检测边缘的效果和matlab的不同,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

可以明显的看出matlab的边缘更为细腻。

首先回顾一下传统的canny算法的主要步骤:

1、使用sobel差分算子求出灰度图像的x和y方向导数;

2、求出图像各点梯度大小及其方向;

3、设置高低两个阈值,梯度大于高阈值为强边像素点,大于低阈值为潜在可能是较弱的边缘点;

4、在经过一次筛选剩下的强边缘点中沿着梯度方向进行非极大值抑制;

5、顺着二次筛选后的强边点寻找邻近的弱边点得到最终的边缘。

opencv和matlab都基本按照以上步骤得到各自的canny 函数,但一般来说处理之前都先对图像进行模糊平滑,这样得到的效果更好。opencv更注重实时性,所以连平滑都作为可选项放在函数外,而matlab则 更注重质量,除了加入平滑操作外,还有其他一系列的优化操作,以下逐项比较。

1、模糊平滑

这一项其实对生成的边缘效果影响十分大,平滑的越流畅则生成的边缘越圆滑,一 般使用高斯低通滤波;那么滤波器的大小以及高斯分布的方差是两个关键的参数,通过实验确定取什么值最优,但一般用5×5和方差为2的就可以 了,opencv的cvSmooth函数可以进行平滑,一般都是使用输入和输出都是8位深的图像,而matlab是把图像转换为浮点类型后进行平滑操作, 这样一来从精度上说matlab就已经更胜一筹了,因为这直接决定后面的求导运算得到的两个方向导数的精度。

2、梯度

在sobel的运用上两者是一致的,但是求梯度的方向的算法两者是截然不同 的,但本质一样,效果经过笔者测试基本相同。在梯度的大小方面,opencv提供了欧式距离和哈密顿距离两种度量方式,前者是平方和后开方,后者是直接绝 对值的加和,opencv默认使用后者,我们知道((x2+y2)/2)1/2>=(|x|+|y|)/2,以及|x|+|y|>=(x2+y2)1/2 所以理论上使用哈密顿距离也基本符合真实数值,但总归是有精度上的差别,这也是为什么有人说opencv的canny不如matlab好的第二个原因了,在cv.h里面可以通过修改CV_CANNY_L2_GRADIENT来进行切换。

3、阈值

这里的阈值是梯度大小是否能够通过的开关,opencv的阈值都采用手工设置的方式,而matlab是把所有点的强度作出直方图,保留一定百分比的强边缘,这个步骤的差别不会影响结果的质量,但是在速度上当然会有差别,这是速度和方便程度的矛盾。

4、薄边效果

经过非极大值抑制后的边缘基本上是一到两个像素点的宽度,最终希望得到一个线 宽的边缘,opencv只是通过简单的判断来防止并行或者并列出现两个强边像素,这种简单的薄边手法会导致边缘的断裂,而matlab采用了Louisa Lam, Seong-Whan Lee, and Ching Y. Wuen, "Thinning Methodologies-A Comprehensive Survey," IEEE TrPAMI, vol. 14, no. 9, pp. 869-885, 1992. 这边文章的方法进行两次薄边处理,效果相当好,所得的边缘十分圆滑。

综上所述,要想opencv的效果和matlab的差不多就必须在平 滑上下功夫,梯度的大小要用欧式距离度量,另外要加入matlab的薄边算法,这样一来处理时间大概会增加一倍,但也基本可以满足实时处理。另外在一般视 觉应用中可以把算法修改为一个阈值,去掉强弱边连接这一步骤以提高速度.

关于为什么opencv的canny函数检测边缘的效果和matlab的不同就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

边缘 效果 梯度 阈值 平滑 函数 两个 图像 大小 方向 步骤 算法 处理 不同 像素 差别 文章 精度 质量 速度 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 江苏根荣互联网科技 苏州找大状互联网科技有限公司 互联网最新的科技 北京互联网科技有限公司 广州紫鲸互联网科技 国外互联网科技网站 青岛中康互联网医疗科技有限公司 世界互联网科技公司市值排名 呼和浩特新华互联网科技学院 中国科技创新与世界互联网大会 互联网时代的科技公司 合肥互联网科技公司公章图片 江苏互联网科技小贷 互联网科技包装股 科技互联网行业投资研究 江苏互联网智能科技产品出厂价 互联网科技手抄报图片 互联网科技创新创业项目 伍佰万互联网科技是干嘛的 互联网科技快速发展优美句子 互联网与科技 互联网科技活动banner 北京互联网科技公司 易互联网科技有限公司 碳银互联网科技 金融科技和互联网金融 互联网科技教育视频 沐思想互联网科技有限公司 互联网科技资金流入 济南小医互联网科技有限公司招聘
0