我有一个问题。 cvQueryFrame到底做了什么?据我所知,它从缓冲区中的“已捕获的帧”中选择一个帧,对吧?
在我的应用程序中,每帧的处理需要1秒,但我的相机的fps是30fps。如何在1秒钟结束后/当前帧相关过程的处理结束时进行下一个快照?我不想要旧框架!
现在,正如我在第二次循环运行中看到的那样(当我再次调用cvQueryFrame时,它会从缓冲区中检索几乎1秒钟后捕获的帧。
我怎样才能真正做到一切?任何帮助都非常感谢!!
答案 0 :(得分:0)
它基本上会按顺序为你提供帧,所以无论处理多长时间,它都不会丢帧。请记住,API也用于从视频中读取,在这种情况下它是有意义的。
您可以连续调用cvQueryFrame并在单独的线程上进行处理。或者,您可以使用系统API(例如DirectShow)或相机的API来进行读取,这通常会使丢帧更容易。