屏幕上摄像头输出的OpenCV延迟

屏幕上摄像头输出的OpenCV延迟,opencv,delay,Opencv,Delay,我注意到OpenCV有一个奇怪的地方。我使用OpenCV附带的一个基本示例C程序在屏幕上显示相机输出。一、 但是,与相机看到的相比,在屏幕上看到输出时会有微小的延迟。因此,如果我把我的手放在相机前面,它将以大约0.1秒的延迟显示在屏幕上。我们正在开发一个对这些延迟非常敏感的应用程序。有没有办法消除这种延迟,使图像传输瞬间完成?例如,当我通过Skype查看相机输出时,我看不到微小的延迟 多谢各位! P.openCV highgui显示窗口仅用于简单显示图像处理结果-未针对高性能或低延迟进行优化 您

我注意到OpenCV有一个奇怪的地方。我使用OpenCV附带的一个基本示例C程序在屏幕上显示相机输出。一、 但是,与相机看到的相比,在屏幕上看到输出时会有微小的延迟。因此,如果我把我的手放在相机前面,它将以大约0.1秒的延迟显示在屏幕上。我们正在开发一个对这些延迟非常敏感的应用程序。有没有办法消除这种延迟,使图像传输瞬间完成?例如,当我通过Skype查看相机输出时,我看不到微小的延迟

多谢各位!
P.

openCV highgui显示窗口仅用于简单显示图像处理结果-未针对高性能或低延迟进行优化


您必须在videoinput库和您想要使用的任何显示库之间编写对话内容。

只是为了确认-是的,一旦我关闭highgui视频输出,处理速度显著提高,FPS也随之增加。现在该应用程序能够以每秒80帧的速度获取和处理帧。对于类似的问题,不需要编写新的视频输出库的一个解决方案是只显示视频的每一帧,比如说第十帧,以节省处理能力


谢谢

最终输出分辨率是多少?这与skypes的分辨率相比如何?你能具体说明一下哪个样品吗?您使用的是什么操作系统?很可能您必须编写自己的、高度优化的库,以便立即捕获相机。简单的驱动程序,比如OpenCV中使用的驱动程序,有一个固有的延迟,平台是Windows7 64位。输出分辨率为640x480。示例代码很简单。它名为camera.py,位于python的samples目录中。我不知道Skype和OpenCV的输出速度之间的数量差异,但我可以通过观看视频并快速移动我的手来看到,当我通过OpenCV中的imshow()输出视频时,我会得到大约0.1秒的延迟,但Skype摄像头的输出几乎没有延迟。如果OpenCV驱动程序有固有的延迟,那么这就是OpenCV的问题,我们必须改变技术。谢谢你的帮助!谢谢你的回复。因此,如果我将视频输出存储到一个文件中,而不是输出到屏幕上,那么就不会有任何延迟了?你觉得这样行吗?我不需要在屏幕上显示它。我需要立即对图像进行处理。这才是最重要的。谢谢videoinput库相当不错,不过这取决于使用的directshow过滤器。如果你有相对较小的图像,那么现代PC可以在低帧速率下“实时”对每个图像进行大量处理。如果您需要以60fps的速度对1920x1080p的图像进行复杂的处理,那就更麻烦了!相机的分辨率是640x480像素,我有意不做任何图像处理。我只是从相机中读取帧,并使用cv::imshow()在屏幕上显示它们。因此,如果进行了任何处理,只需在屏幕上显示图像。不过还是有那么一点耽搁。这种延迟不会发生在其他软件上。我希望这是highgui库显示帧速度不够快的问题。谢谢另一个大多数人都不知道但却给我们带来大问题的因素是,LCD屏幕本身的内部电子设备通常有3-4帧的延迟(@60fps),如果你想做精确的手眼任务,就会产生明显的延迟。嗯,我没有意识到这一点。谢谢分享。将来知道可能会有用。