在圆霍夫变换之前使用 Canny 边缘检测是否有任何计算优势?

Is there any computational benefit to using Canny edge detection before circle Hough Transform?

当我偶然发现 this post

时,我正在研究如何检测游泳池中的台球 table

OP 声明他在应用圆 Hough 变换之前在视频源的色调通道上使用了 Canny 边缘检测算法。在圆检测之前执行边缘检测是否有任何计算优势,或者我应该立即对视频输入执行圆检测?

提前致谢!

执行 Hough-anything 的 OpenCV API 已经 在内部执行 Canny。在调用 OpenCV Hough* 函数之前显式应用 Canny 将是一个错误(除非有一个不隐式执行 Canny 的函数......)。就我个人而言,我讨厌这个并且更愿意能够选择正在发生的事情,比如我是否已经有了边缘图像。

一般,你可以做一个密集霍夫或稀疏霍夫,并且您可以获得 加权未加权 票。

  • 加权:每个像素根据其强度(携带信息)进行投票

  • 未加权:每个像素获得 1.0 票

  • 密集:所有像素投票

  • 稀疏:只有一些像素投票(重要的,不是随机的)

Dense+unweighted 是愚蠢的,因为整个图像的所有像素都投票相同。累加器数组看起来很平坦。

密集是昂贵的,所以人们使用稀疏投票。未加权也更简单,所以人们这样做。 Canny 是一种 将图片二值化的方法并且 接收非常小的一组像素。