Python Opencv VideoCapture 最多接受 1 个参数(给定 2 个)
Python Opencv VideoCapture takes at most 1 argument (2 given)
我想使用 VideoCaptureAPIs(cv2.CAP_DSHOW) 来调整我的分辨率。
link: https://reurl.cc/NXZgp6
因为我不能把比例改成16:9。
尽管我将分辨率设置为 1280*720,但它始终是 4:3。它不起作用,但给我这样的图像。
网络摄像头是罗技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)
[解决方法]
好的,所以我通过使用 python3.7.9 和 opencv 4.5.1.48 解决了这个问题并且它有效!我认为在某些版本的 python 中使用 opencv 时存在一些定义冲突,例如 3.6 和 3.8。
所以我刚刚升级了python环境和opencv版本:
pip install --upgrade opencv-python==4.5.1.48
希望这个回答对您有所帮助。
我想使用 VideoCaptureAPIs(cv2.CAP_DSHOW) 来调整我的分辨率。 link: https://reurl.cc/NXZgp6
因为我不能把比例改成16:9。 尽管我将分辨率设置为 1280*720,但它始终是 4:3。它不起作用,但给我这样的图像。
网络摄像头是罗技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)
[解决方法] 好的,所以我通过使用 python3.7.9 和 opencv 4.5.1.48 解决了这个问题并且它有效!我认为在某些版本的 python 中使用 opencv 时存在一些定义冲突,例如 3.6 和 3.8。
所以我刚刚升级了python环境和opencv版本:
pip install --upgrade opencv-python==4.5.1.48
希望这个回答对您有所帮助。