我个人觉得,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,认为相互垂直。

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

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

相关文章:

  • 2021-08-12
  • 2021-05-07
  • 2022-01-05
猜你喜欢
  • 2021-09-11
  • 2021-07-09
  • 2021-04-08
  • 2022-01-11
  • 2021-10-20
  • 2022-12-23
相关资源
相似解决方案