为什么 Python OpenCV 相机在 Ubuntu 中的读取速度比 Windows 慢?

Why is Python OpenCV camera read in Ubuntu slower than Windows?

我有一个非常简单的代码来查看来自网络摄像头 (Microsoft HD LifeCam Studio) 的视频,如下所示:

import cv2
from imutils.video import FPS

cap = cv2.VideoCapture(0)
cap.set(cv2.CAP_PROP_FRAME_WIDTH, 1280)
cap.set(cv2.CAP_PROP_FRAME_HEIGHT, 720)
fps = FPS().start()

while cap.isOpened():
    _,frame = cap.read()
    cv2.imshow('frame',frame)
    if cv2.waitKey(1) & 0xFF == ord('q'):
        break
    fps.update()
fps.stop()
print("{}".format(fps.fps()))

cap.release()
cv2.destroyAllWindows()

代码会在程序结束时打印出FPS。

当 运行 此代码在 Windows 时,我收到 30 FPS。但是,当 运行 在 Ubuntu 时,我只收到 10 FPS。

我已经试过了cap.set(cv2.cv.CV_CAP_PROP_FPS, 30)但是还是不行。

有没有人遇到同样的情况?这个问题有什么解决办法吗?

我 运行 Windows 10 和 Ubuntu 16.04 Python 3.5.2 OpenCV 3.4.0

问题在于我如何安装OpenCV框架。在 Ubuntu 中,我使用 Pip 安装了导致性能较差的 OpenCV。我没有使用 Pip,而是从源代码构建 OpenCV,将性能提高到与 Windows.

中相同的性能