gpt4 book ai didi

python - VideoCapture() 相机索引和 QCameraInfo.availableCameras() 索引不匹配

转载 作者:行者123 更新时间:2023-12-02 16:25:10 25 4
gpt4 key购买 nike

我尝试获取摄像机列表,以根据它们的名称知道我需要访问哪个摄像机。但是,我使用 Qt 的 QCameraInfo.availableCameras() 获得的列表与我提供给 cv2.VideoCapture() 的指数相比似乎并不总是匹配,所以如果我有一个名为 "CAM1" 的相机来自 QCameraInfo.availableCameras()在索引 0 , 如果我这样做 VideoCapture(0) , 我不访问 "CAM1" .

为什么以及如何解决这个问题?

import cv2
from PySide2.QtMultimedia import QCameraInfo

camera_list = []
index = 0

for cam in QCameraInfo.availableCameras():
camera_list.append([index, cam.description()])
index += 1

print(camera_list)

camera = cv2.VideoCapture(0)

最佳答案

所以问题是 Windows 有多个摄像头后端,OpenCV 使用 MSMF 后端,而 Qt 使用 COM 接口(interface)(名为 DirectShow)并且后端有不同的索引。通过使用 cv2.CAP_DSHOW 提供了一个解决方案.你可以做cv2.VideoCapture(index + cv2.CAP_DSHOW)解决问题。

关于python - VideoCapture() 相机索引和 QCameraInfo.availableCameras() 索引不匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61854453/

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