机器视觉入门之路(三三,经典canny边缘检测(计算机视觉里程碑))

我个人觉得,canny是麻雀虽小,但是五脏俱全的人工智能的东东,正是他,让我对图像处理产生了极大兴趣,并走上了机器视觉的道路,当然,极大的兴趣,必然伴随极大的挫折和障碍。

虽然机器视觉中很少用它,但每有突破,总是不由自主想起他,回过头来,还是他最经典,他里边所蕴含的思想极具有启发性,canny不仅仅是算子,他是智能算子,他不是单一性的,他具有系统性,有恰到好处的中庸,这就是canny,了不起的canny,作为计算机视觉中一个里程碑毫不含糊,甚至可以说是人工智能领域里的里程碑!

好,为了更好的理解他,我们先拆解他,用积土成山的微积分方法,逐步撬动他。

第一个观念,穿越边缘的点梯度方向垂直于边缘

如图示意,(i,j-1)位置,梯度方向角=arctan(0/0)=90度

(i,j)位置,梯度方向角=arctan(200/0)=90度

这样的示范随意一个点都可以蹚浑水成功,我们还是证明一下吧!

假定线方向在水平线上,那么与这条线相邻的点,即穿越边缘的点的Gx=0=f(i,j+1)-f(i,j),Gy=f(i+1,j)-f(i,j),那么arctan(Gy/Gx=无穷大)=90度,所以与这条线相邻的点的梯度方向角都是90度,这就保证了相互垂直。那么,我们把这幅图旋转45度,旋转也没用,因为你无法改变这种边缘图像的结构,无论如何,都可以把他旋转到水平形式,则结果仍然能保持其相互垂直。

如果不是穿越边缘的点,其实是不相关点,即使梯度角为90度,又有什么意义呢?也就是说他的计算和边缘搭不上边,计算无意义

那么对于旋转后的任意角边缘,如何求边缘的斜率呢?那么高中知识告诉我们k1*k2=-1,认为相互垂直。

所以我们只要能找到穿越边缘的点,就能求出直线斜率来。

原来这就是找图像中在直线上点的原理啊!(下一次,我们用线边缘所有穿越点梯度角来求斜率,是否比最小二乘法快一些呢?有机会,试一下)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值