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

标签 python opencv image-processing

我有一个非常简单的代码来查看来自网络摄像头(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 中相同。

关于python - 为什么Python OpenCV相机在Ubuntu中读取速度比Windows慢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50738541/

相关文章:

python - 如何在不使用外部模块的情况下在 Python 中打开/创建图像

python - 如何从唯一单词列表和位置重新创建一个句子

python - 无法让 python 脚本在 WSH 下工作

c# - 如何检测与背景颜色相同的物体

python - 在 Fedora 24 上为 Python 3 安装 OpenCV

java - OpenCV : Converting a float array into Mat

python - if elif 语句中的表达式评估

python - O(N) 中的最长递增子序列代码?

java - SWT:从图像中获取子图像

c# - 上传前 MVC 转换图像