OpenCV(五)——超细节的Canny原理及算法实现

继上一章承诺,编写这一章。

原因呢,是这样,在实际项目中,用到canny很少,我总觉得它对于细节边缘过于详尽。

我们知道,opencv提供的算法库,内部核心算法是定死的,你只能通过调节参数来测试。

如果你不知道原理,估计这次调好了,下次又要花大半时间去。简直是无用功。

本着专研精神,还有也方便自己后续查阅,于是乎我就推出这一期的Canny算法。

 

啰嗦几句,其实要学好算法,看书是必不可少的,很多时候,度娘,必应,知乎啊等等,查不到你要的。

推荐一本好书《图像处理与计算机视觉算法及应用》(第2版)。

 

根据书本所述Canny的描述:

(1)读入要处理的图像I

(2)创建一个一维高斯掩模G用于对I进行卷积运算,这个高斯函数的标准偏差是传入边缘检测器的一个参数。

(3)在x和y方向上创建高斯函数的一阶导数作为一维掩模,分别称为Gx和Gy。s值和步骤(2)中使用的一样。

(4)沿着行利用G对图像I做卷积运算得到x分量图像Ix,沿着列利用G对图像I做卷积运算得到y分量图像Iy。

(5)利用Gx对Ix进行卷积运算得到Ix',即利用高斯函数的导数对I的x分量进行卷积,然后利用Gy对Iy进行卷积运算得到Iy'。

(6)结合x分量和y分量计算边缘响应的强度(即,是否希望在这一点看到结果)。每个像素(x,y)上的强度结果可以通过下式计算:

M(x,y)=\sqrt{I'_{x}(x,y)^2+I'_{y}(x,y)^2}

(7)非最大抑制。

(8)滞后双阈值化。

 

其中(1)~(6)的流程如下

(2)步骤代码:

一维高斯掩模:

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值