我正在为一些图像处理例程编写 C++/opencv 代码,并使用我的 Dell Precision 7730 自己的网络摄像头获取测试视频输入。显卡是 Quadro P5200。
我在 Windows 10 上开始使用 VSE 2015 和 opencv 4.1.0。在那里我可以捕获 1280x720 网络摄像头视频并以 30fps 或摄像头输出的任何速率显示它。
但是我最近切换到带有 Eclipse 的 Ubuntu 18.04(安装在第二个 SSD 上),因为我们的实际外部原型相机通过 UDP 数据包将视频发送到以太网端口,Windows 丢失了太多接收数据包。(这是稍后要解决的另一个问题,但 Ubuntu 不会导致任何丢包——我们可以以 30fps 的速度接收和显示这些数据包。)
但是现在在 Ubuntu 中,使用基本相同的 C++ 代码,网络摄像头被限制到 < 10fps。即使我除了捕获(cap >> Mat)和显示(imshow)之外什么都不做,它通常也会下降到 7.5fps 左右。
然而 Ubuntu 应用程序 Cheese 似乎没有这个问题,帧速率似乎为 30fps。
有人知道在 Ubuntu 中发生了什么事情,导致自定义 opencv 应用程序中的网络摄像头帧速率降低吗?以及如何修复?
请注意,为了 Ubuntu 的稳定性,我在 BIOS 中关闭了可切换显卡,但我认为这只能有所帮助。