如何使用opencv稳定视频流中的圆圈?

时间:2013-06-22 06:42:44

标签: c++ opencv hough-transform

几天前我开始使用OpenCV,我的目标是检测一个圆圈及其中心,我使用了hough变换,我使用的是分辨率为640x480的网络摄像头,它正在工作但是circle继续改变它的位置,为了更好地解释它我在youtube上发布了一个屏幕抓取https://www.youtube.com/watch?v=6EGePHkGrok
这是代码http://pastebin.com/zRG4Yfzy,是的,我知道它有点乱 首先显示完整的视频,当相机稳定后,我按ESC,然后在ROI 250x250上开始处理。
我添加了几个轨迹栏来改变霍夫变换的参数和模糊量,改变模糊量并没有解决问题。 如何稳定圈子?此外,相机不会移动,因此无需跟踪。 或者我应该采用一种全新的方法来做到这一点? 根据我的理解,我需要应用某种过滤器。
物体有许多圆形轮廓,但都具有相同的中心,因此任何圆形轮廓都被检测到它的精细。

PS:我不是图像处理专家,我修补了各种网站和书籍的代码

1 个答案:

答案 0 :(得分:1)

众所周知,Hough变换容易出错。

对于您的情况,您可能会在图像中找到轮廓并按其圆度过滤它们。

1-灰度

2-低通滤波器(高斯模糊)

3- canny边缘检测

4-找到轮廓并列出它们的区域。

5-将你的圆圈圈成圆圈。

6-选择最接近轮廓区域的最小圆周区域的轮廓。

7-使用moments F3型“质心”找到轮廓质心