我想从网络摄像头获取视频流,我用opencv编写了以下代码:
import cv2 as cv
cap = cv.VideoCapture(0)
while True:
frame, ret = cap.read()
cv.resize(frame, (640, 480))
if ret is None:
print("Error reading frame")
break
cv.imshow("frame", frame)
if cv.waitKey(1) == ord('q'):
break
cap.release()
cv.destroyAllWindows()
我得到了下面的结果,它不应该这样工作
我在Windows 10、Ubuntu 22.04 LTS、python 3.10、3.9上测试了opencv和opencv-contrib的最新版本
1条答案
按热度按时间p1tboqfb1#
我想从网络摄像头上
有两种方法:
选项1
ret
必须始终是第一个变量,而不是第二个变量。将此
frame, ret = cap.read()
交换为ret, frame = cap.read()
这就是为什么你使用
if ret is None:
片段:
选项2:使用相同的OP脚本。
ret
更改为frame
frame
更改为ret
片段: