几天前我开始使用 OpenCV,我的目标是检测一个圆圈及其中心,我使用了霍夫变换,我使用的是分辨率为 640x480 的网络摄像头,
它正在工作,但圆圈不断改变它的位置,为了更好地解释它,我在 youtube 上发布了屏幕截图https://www.youtube.com/watch?v=6EGePHkGrok
这是代码http://pastebin.com/zRG4Yfzy,是的,我知道它有点乱。
首先显示完整的视频,当相机稳定时,我按 ESC,然后在 250x250 的 ROI 上开始处理。
我添加了一些轨迹栏来更改霍夫变换和模糊量的参数,改变模糊量并不能解决问题
如何稳定圈子?此外,相机不会移动,因此不需要跟踪。还是我应该采用一种全新的方法来做到这一点?
根据我的理解,我需要应用某种过滤器。
物体有许多圆形轮廓,但都具有相同的中心,因此任何圆形轮廓都被检测到它的精细。
PS:我不是图像处理专家,我从各种网站和书籍中修补了代码
问问题
1621 次
1 回答
1
众所周知,霍夫变换容易出错。
对于您的情况,您可能会在图像中找到轮廓并通过它们的圆度对其进行过滤。
1-灰度
2-低通滤波器(高斯模糊)
3-canny边缘检测
4-找到轮廓并列出它们的区域。
5-在你的轮廓上画出最小的封闭圆圈。
6-选择最接近轮廓区域的最小封闭圆区域的轮廓。
7-使用矩F3类型“质心”找到轮廓的质心
于 2013-06-22T10:43:34.913 回答