当我通过'cvQueryFrame'使用openCV捕捉投影图案的照相机图像时,我经常会得到一个意想不到的工件:投影机的扫描线。也就是说,由于“cvQueryFrame”捕获图像时我无法精确计时,因此拍摄的图像并不考虑投影机的恒定30Hz刷新。其结果是那些将视频摄像机转向电视屏幕的人所熟悉的典型水平频带。openCV:是否有可能使cvQueryFrame与投影仪同步?
短诉诸硬件同步的,有没有人曾在OpenCV的一些成功的近似(例如,“足够好”)非正式投影器相机同步?
下面是两个解决方案我正在考虑,但希望这是一个很好的解决方案可能存在一个共同的问题不够。我的低于优雅的想法是:
在cvWindow添加的滑块控制显示视频的用户控制的定时从0偏移1 /第30秒,然后设置队列定时器在此间隔。无论何时需要帧,我都会请求一个回调函数在下一次触发定时器时执行'cvQueryFrame'。通过这种方式,理论上用户可以使用滑块来减少扫描线伪影,只要定时器分辨率足够。
在通过'cvQueryFrame'接收到一个帧后,通过查找像素垂直列的HSV值中的增量来检查该告警水平带的帧。当然,这只有在拍摄对象在平稳变化的照明条件下包含均匀颜色的基准条时才起作用。
我已经使用了几款相机与OpenCV,最近一个佳能单反相机(7D)。