opencv中canny算法理解

opencv canny的应用详解参见:

http://docs.opencv.org/doc/tutorials/imgproc/imgtrans/canny_detector/canny_detector.html


canny算法的基本步骤:


1. 获取x,y的梯度

2. 非最大值抑制

3. 边缘跟踪

第一个步骤很好理解,获取x方向、y方向的梯度。opencv中应用sobel算子来获取dx,dy。

第二个步骤有点绕口费解,说白了就是在梯度方向上求最大值,来判断此点是不是边缘点。梯度方向上是灰度变换最大的方向,只要在这条线上,比较梯度图像的中心点的邻域即可。如果梯度图像中,中心点大于两个邻域的值,则可能为边缘点,如果小于邻域的值,则为非边缘点。


有的实现采用插值的方式来获取梯度方向上中心点邻域的值,然后进行比较。而opencv,将图像中心点梯度方向近似为4个方向 0, 45, 90 及135,直接可以利用8邻域进行比较计算,不用插值的方法。。


这四个方向正好对应8邻域的横向、纵向及斜向4个方向。例如 角度 < 22.5度(PI/8) 时,横向; 角度 > 67.5度时,纵向...

        1   2
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值