如何使用opencv稳定视频流中的圆
How to stablize the circle from video stream using opencv?
我已经开始使用OpenCV几天前,我的目标是检测一个圆圈和它的中心,我已经使用了hough变换,我使用分辨率640x480的网络摄像头,
它正在工作,但圆圈不断改变它的位置,为了更好地解释它,我在youtube上发布了一个屏幕截图https://www.youtube.com/watch?v=6EGePHkGrok
这是代码http://pastebin.com/zRG4Yfzy,是的,我知道它有点乱。
首先显示完整的视频,当相机稳定时按ESC,然后在ROI 250x250上开始处理。我添加了一些轨迹条来改变霍夫变换和模糊量的参数,改变模糊量并不能解决问题
如何稳定圈?摄像机也不会移动,所以不需要跟踪。或者我应该采用一种全新的方法来做这件事?
根据我的理解,我需要应用某种滤镜。
物体有许多圆形轮廓,但都有相同的中心,因此任何一个圆形轮廓都可以被检测到其精细度。
PS:我不是图像处理专家,我从各种网站和书籍中修补了代码
霍夫变换很容易出错。
对于你的情况,你可能会在你的图像中找到轮廓,并根据它们的圆度来过滤它们。
1 -灰度
2-低通滤波器(高斯模糊)
3-边缘检测
4-找到等高线并列出它们的区域。
5-在你的等高线上画最小的围圆。
6-选择与轮廓面积最接近的最小围圆面积的轮廓。
7-利用矩量F3型"质心"找到轮廓的质心
相关文章:
- 如何使用OpenCV-C++编写*.mp4视频?
- OpenCV QT,显示视频的帧(不使用while循环)
- FFmpeg——使用硬件加速进行视频解码
- 使用 IMFSinkWriter 编码的视频的播放速度会根据宽度而变化
- OpenGL 调试上下文警告 -"将使用视频内存作为缓冲区异议的来源
- 如何使用Qt在新窗口中显示视频帧
- Qt GUI使用Qfiledialogbox和qlabel显示视频,这是我的代码
- 面临分段故障 使用 ffmpeg 读取视频时,因为"pFormatCtx-> streams [i]-> codecpar"的地址0x00
- 我们如何跳过帧,计算帧数并使用视频阅读器获取当前帧
- 如何使用OpenCV同时显示"深度"和"颜色"视频图像
- 在OpenGL中使用程序集代码渲染视频时出错
- 帧提取 使用OpenCV的视频文件开头只有几秒钟
- 如何在 QT 中使用 udpsrc 管道流式传输视频
- 如何使用OpenCV作为运动检测器(而不是寻找视频输出)
- 锐化视频图像使用openCV
- 压缩avi视频文件使用directshow
- Ios照片/视频捕捉/使用c++
- 网络摄像头视频捕捉使用Visual c++ 6.0
- 如何运行一个视频文件使用VLC播放器使用c++
- 免费的音频和视频播放使用Direct3D9和FMOD在VC++2010