cv2.VideoCapture(0) 每次运行都从不同的摄像头读取帧

问题描述 投票:0回答:1

我遇到了一个莫名其妙出现的非常奇怪的问题,同样的代码以前没有引起这个问题。

以下代码,我第一次运行它时,它从我连接的外部摄像头读取帧;我第二次运行它时,它从我的 MacBook 的内置摄像头读取了帧;第三次它从外部摄像头读取帧。

一直在切换,我不知道怎么解决,我希望

cameraCapture = cv2.VideoCapture(0)
总是从外接摄像头获取画面。

import cv2

cameraCapture = cv2.VideoCapture(1)

# read
success, frame = cameraCapture.read()
while success and cv2.waitKey(1) == -1:
    img = frame

    cv2.imshow("Mine", img)
    success, frame = cameraCapture.read()

有什么办法可以获取某个编号的摄像头的数据,比如名称、分辨率等?

python macos opencv pycharm computer-vision
1个回答
0
投票

您可以使用

cameraCapture.get(<property id>)
获取捕获设备的不同属性。 这里有它们的完整列表,但您正在寻找的是:

  • cv.CAP_PROP_FRAME_WIDTH
    为宽度
  • cv.CAP_PROP_FRAME_HEIGHT
    代表身高。
© www.soinside.com 2019 - 2024. All rights reserved.