OpenCV显示视频无遗漏无撕裂

标签 opencv synchronization vsync

我为我的英语道歉。

我需要在固定 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/

相关文章:

opencv - 使用 OpenCV 检测表格

opencv - 第一次调用OpenCV CUDA API时非常慢

Java程序写入后无法使用文件写入

android - 使用 dropbox sync API 的 android 应用程序可以使用本地安装的 dropbox 官方应用程序的缓存、文件系统和文件吗?

c++ - 具有散乱字符的图像的倾斜角度检测

algorithm - 如何自动调整颜色和对比度

java - Context.openFileInput 和 Context.openFileOutput 之间的同步

QT - 如何正确处理 Vsync 和多个 QGLWidgets

android - 当设备保持静止但被触摸时 Android 动画的性能下降