gpt4 book ai didi

openCV:是否可以对 cvQueryFrame 进行计时以与投影仪同步?

转载 作者:太空宇宙 更新时间:2023-11-03 22:16:09 26 4
gpt4 key购买 nike

当我通过“cvQueryFrame”使用 openCV 捕获投影图案的相机图像时,我经常以意外的人工制品结束:投影仪的扫描线。也就是说,由于我无法精确计时“cvQueryFrame”捕获图像的时间,因此所拍摄的图像不符合投影仪恒定的 30Hz 刷新率。结果是那些将摄像机转到电视屏幕上的人所熟悉的典型水平带。

如果不求助于硬件同步,有没有人在 openCV 中通过近似(例如,“足够好”)的非正式投影仪-相机同步取得了一些成功?

以下是我正在考虑的两个解决方案,但我希望这是一个足够普遍的问题,因此可能存在一个优雅的解决方案。我不太优雅的想法是:

  • 在显示视频的 cvWindow 中添加一个 slider 控件,供用户控制从 0 到 1/30 秒的时间偏移,然后以此间隔设置一个队列计时器。每当需要一个帧时,我不会直接调用“cvQueryFrame”,而是请求回调以在下一次触发计时器时执行“cvQueryFrame”。这样,理论上用户可以使用 slider 来减少扫描线伪影,前提是定时器分辨率足够。

  • 通过“cvQueryFrame”接收帧后,通过查找垂直像素列的 HSV 值增量来检查标志性水平带的帧。当然,这只有在被拍摄对象在平滑变化的光照下包含均匀颜色的基准条时才有效。

我使用了多台带有 OpenCV 的相机,最近使用的是 Canon SLR (7D)。

最佳答案

我认为您提出的解决方案行不通。 cvQueryFrame 基本上从相机驱动程序的缓冲区复制下一个可用帧(或在内存映射区域中推进一个指针,或 blah 根据您的驱动程序实现)。

在任何情况下,调用 cvQueryFrame 的时间对捕获图像的时间都没有影响。

所以正如您所建议的那样,硬件同步确实是唯一的途径,除非您有特殊的相机,例如点灰度相机,它可以让您对帧集成开始触发器进行明确的软件控制。

关于openCV:是否可以对 cvQueryFrame 进行计时以与投影仪同步?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5840683/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com