gpt4 book ai didi

python - OpenCv webcam 读取官方代码很慢

转载 作者:太空宇宙 更新时间:2023-11-03 22:46:22 27 4
gpt4 key购买 nike

我刚得到一个高端 1080p 网络摄像头,在 Windows 10 的“相机”应用程序中打开它,以 25 或 30fps 的速度完美显示它,但是当使用 opencv 时它非常慢,我在循环中放置了一个计时器,同时禁用了显示每帧之间有大约 200 毫秒。

为什么?

import numpy as np
import cv2
import time

def getAvailableCameraIds(max_to_test):
available_ids = []
for i in range(max_to_test):
temp_camera = cv2.VideoCapture(i)
if temp_camera.isOpened():
temp_camera.release()
print "found camera with id {}".format(i)
available_ids.append(i)
return available_ids

def displayCameraFeed(cameraId, width, height):
cap = cv2.VideoCapture(cameraId)
cap.set(cv2.CAP_PROP_FRAME_WIDTH, width)
cap.set(cv2.CAP_PROP_FRAME_HEIGHT, height)

while(True):
start = time.time()
ret, frame = cap.read()
rgb = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB)
end = time.time()
print "time to read a frame : {} seconds".format(end-start)

#DISABLED
#cv2.imshow('frame', frame)
#if cv2.waitKey(1) & 0xFF == ord('q'):
#break

cap.release()
cv2.destroyAllWindows()

#print getAvailableCameraIds(100)
displayCameraFeed(0, 1920, 1080)

谢谢

Windows 10 x64 上的 Opencv 3.1,python 2.7 x64

最佳答案

我在我的 linux 系统上遇到了同样的问题,我在帧之间有 150 毫秒的延迟。就我而言,问题是相机的自动曝光功能处于打开状态,这增加了曝光时间,导致延迟。

关闭自动曝光将延迟减少到 49~51 毫秒

这是一个来自 OBSProject 的链接,其中讨论了它 https://obsproject.com/forum/threads/getting-the-most-out-of-your-webcam.1036/

我不确定您如何在 Windows 机器上执行此操作,Google 搜索显示在您的 Skype 设置中更改它会在全局范围内更改它。 (如果您的相机捆绑了软件,您也可以在那里进行更改。)

对于 linux 机器,运行 v4l2-ctl --list-ctrls 会列出您可以修改的相机功能。

我将 exposure_auto_priority (bool) 设置为 0 以关闭自动曝光。

关于python - OpenCv webcam 读取官方代码很慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46674503/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com