我为我的英语道歉。
我需要在固定 FPS 的情况下逐帧显示视频而不撕裂。 (在 50p 模式下显示工作,我想每秒显示 50 个不同的帧)。
我使用软定时器,但没有任何效果(频闪效应)。
我在没有 OpenGL 的情况下使用 cv::imshow。
请告诉我该怎么做?
最佳答案
您可以尝试在 imshow 之后添加 waitKey(20);
调用。 20 是显示图像后等待的毫秒数。
但是请注意,waitKey 不保证它会在第 20 毫秒结束后立即返回。它只保证它将运行至少 20 毫秒。
如果您需要更可靠的东西(可能是这种情况,因为您的 fps 非常高),您应该使用一些高精度时钟计数器。喜欢clock_gettime在 Linux 上。不确定,但我认为在 Windows 上它是 QueryPerformanceCounter
关于OpenCV显示视频无遗漏无撕裂,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21400989/