Warm tip: This article is reproduced from serverfault.com, please click

其他-Python Opencv VideoCapture 最多接受 1 个参数(给定 2 个)

(其他 - Python Opencv VideoCapture takes at most 1 argument (2 given))

发布于 2021-01-27 07:48:41

我想使用 VideoCaptureAPIs(cv2.CAP_DSHOW) 来调整我的分辨率。链接:https : //reurl.cc/NXZgp6

因为我无法将比例更改为 16:9。尽管我将分辨率设置为 1280*720,但它始终是 4:3。它不起作用,但给了我这样的图像。

两边都是黑色LUL

网络摄像头是罗技 C992 Pro 流网络摄像头。而且我已经升级了驱动程序。

有谁知道如何解决它?

import cv2

cap = cv2.VideoCapture(1,cv2.CAP_DSHOW)

cap.set(cv2.CAP_PROP_FRAME_WIDTH, 1280)
cap.set(cv2.CAP_PROP_FRAME_HEIGHT, 720)

while(True):
    ret, frame = cap.read()

    cv2.imshow('frame', frame)

    if cv2.waitKey(1) & 0xFF == ord('q'):
        break

cap.release()

cv2.destroyAllWindows()

错误代码如下:

Traceback (most recent call last):
  File "d:/VisualCode/Weight Scale2/test.py", line 3, in <module>
    cap = cv2.VideoCapture(1,cv2.CAP_DSHOW)
TypeError: VideoCapture() takes at most 1 argument (2 given)
Questioner
CodingPeter
Viewed
11
CodingPeter 2021-02-17 10:34:41

[解决] 好的,所以我用python3.7.9和opencv 4.5.1.48解决了这个问题,它工作了!!我认为在将 opencv 与某些版本的 python(例如 3.6 和 3.8)一起使用时存在一些定义冲突。

所以我只是升级了python环境和opencv版本:

pip  install --upgrade opencv-python==4.5.1.48

希望这个答案有帮助。