opencv cv2.VideoCapture(0)每次运行从不同摄像机读取帧

kb5ga3dv  于 2023-03-09  发布在  其他
关注(0)|答案(1)|浏览(192)

我遇到了一个非常奇怪的问题,不知从哪里冒出来的,同样的代码以前没有引起这个问题。
下面的代码,我第一次运行它的时候,它从我连接的外置摄像头读取帧;第二次运行时,它读取了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()

有什么方法可以获得某个编号的摄像机的数据,例如名称、分辨率等?

bxfogqkk

bxfogqkk1#

您可以使用cameraCapture.get(<property id>)获取捕获设备的不同属性。这里有一个完整的列表,但您要查找的是:

  • cv.CAP_PROP_FRAME_WIDTH表示宽度
  • cv.CAP_PROP_FRAME_HEIGHT表示高度。

相关问题