着急看去下面看结果
首先先说一下总共我自己的环境加上我找朋友帮忙测试的环境
系统 win10 win11 都有
环境包含 python310 ue整套c++开发环境 前端环境 后端环境
摄像头牌子 包含
笔记本自带 雷蛇灵刃15---小米3050ti的游戏本---mac pro m1pro
usb独立摄像头,为了避免型号误差,直接截图,贵的便宜的都有
所有机器采用同样的代码,代码如下
import cv2
startTime = time.time()
cap = cv2.VideoCapture(0) # 开摄像头耗时位置
readyTime = time.time()-startTime
print(int(readyTime)) # 打印一波
while cap.isOpened():
success, image = cap.read()
if not success:
continue
nowImage = cv2.flip(image, 1)
cv2.imshow('LJason', nowImage)
if cv2.waitKey(1) & 0xFF == 27:
break
cap.release()
结果如下
雷蛇 、小米、奥尼两个、罗技 均启动超过5s慢的起飞
海康两个、索盈、Mac 基本1s左右
额。。。我知道这个结果很尴尬。。。
网上各种方法什么改格式,啥的乱七八糟的,只是能稍微快点
有一个比较重要
cap = cv2.VideoCapture(0, cv2.CAP_DSHOW)
DSHOW确实能快一倍,我测出来的结果比如我常用的罗技
7s能缩到3s左右
看起来像是解码方式吧没注意查,因为本质我是想知道为什么启动慢
当然如果你改了参数,比如更大分辨率,更高帧率,那只会更慢更慢
cap = cv2.VideoCapture(0)
cap.set(cv2.CAP_PROP_FPS, 60)
cap.set(cv2.CAP_PROP_FRAME_WIDTH, 1920)
cap.set(cv2.CAP_PROP_FRAME_HEIGHT, 1080)
cap.set(cv2.CAP_PROP_FOURCC, cv2.VideoWriter_fourcc('M', 'J', 'P', 'G'))
感受下45s?
添加DSHOW
cap = cv2.VideoCapture(0, cv2.CAP_DSHOW)
cap.set(cv2.CAP_PROP_FPS, 60)
cap.set(cv2.CAP_PROP_FRAME_WIDTH, 1920)
cap.set(cv2.CAP_PROP_FRAME_HEIGHT, 1080)
cap.set(cv2.CAP_PROP_FOURCC, cv2.VideoWriter_fourcc('M', 'J', 'P', 'G'))
确实DSHOW很有效果,建议带上吧文章来源:https://www.toymoban.com/news/detail-472168.html
文章来源地址https://www.toymoban.com/news/detail-472168.html
到了这里,关于opencv python 相机启动慢问题 VideoCapture 感觉c++同理的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!