霍夫圆检测原理

社区

🍊作者简介:秃头小苏,致力于用最通俗的语言描述问题

🍊专栏推荐:深度学习网络原理与实战

🍊近期目标:写好专栏的每一篇文章

🍊支持小苏:点赞👍🏼、收藏⭐、留言📩

 

霍夫圆检测原理

  在之前已经详细介绍过霍夫直线检测的原理了,这次我们来简单的谈谈霍夫圆检测的原理并进行实战演练。在霍夫直线检测中我已经非常详细的给出了直线检测的原理,不清楚的请先去了解。🥗🥗🥗

  这篇文章我可能不会把原理介绍的非常详细,但肯定会很通俗。【因为用通俗的语言描述问题是我写作的宗旨嘛】其实和直线检测原理是非常类似的,我将用直线检测和圆检测做对比让大家直观上的理解霍夫圆检测。🍒🍒🍒


  在霍夫直线检测中我们的期待求得的未知量是两个,斜率k和截距b;而霍夫圆检测的未知量则变成了三个,分别为圆心坐标(a,b)和半径r。在霍夫直线检测中我们的参数空间是二维的,那么霍夫圆检测的参数空间应该就为三维的,因为有三个未知参数嘛🥙🥙🥙

  不知道这样的描述大家能不能理解哈,再换一种表述方式。我们知道在图像空间的x-y坐标系中,圆的方程为:(x-a)2+(y-b)2=r2。现我们将其转换到a-b-r的三维参数空间,其表达式为:(a-x)2+(b-y)2=r2。在霍夫直线检测原理中我们给出了下列结论:

  • ==图像空间x-y中的一点对应于参数空间k-b中的一条直线。==
  • ==图像空间中的一条直线对应于参数空间k-b中的一个点。==

  那么对应圆检测来说有怎样的结论呢?我们都可以思考思考。类比思考起来也很容易哈,==对应图像空间圆上的一点(x0,y0)对应于参数空间应该是一个三维的锥面。==这个三维曲面如下:即不同的半径r下都会对应一个圆,这样就构成了一个圆锥面。【这里所有不同r下的圆心坐标都为(x0,y0)】

picture.image

​  那么我们若取图像空间圆上的两点,则在参数空间中对应于两个锥面。以此类推,若取图像空间圆上的所有点,对应于参数空间将会有许多锥面,且这些锥面会有一个共同的交点坐标M(a , b , r ),则根据这个M点坐标我们就可以求出原图像空间中的圆啦🍋🍋🍋


  是不是发现和霍夫直线检测的思想是差不多的,但是这里存在一个找公共交点的问题,对于上述的思路较消耗较多的计算量,因此对霍夫圆检测又有了改进,是基于梯度来计算的,这里我更期待的可能是怎么用代码实现圆的检测,因此这儿我不打算再介绍这种基于梯度的圆检测了。不放心大家,这里放上一个链接,大家自行查看:基于梯度的霍夫圆检测

   

如若文章对你有所帮助,那就🛴🛴🛴

咻咻咻咻~~duang~~点个赞呗

0
0
0
0
评论
未登录
看完啦,登录分享一下感受吧~
暂无评论