为什么我使用包销代码从网络摄像头获取图像而不是视频
why am I getting image instead of video from webcam using the underwritten code
我写的代码是-
import cv2
cap = cv2.VideoCapture(0)
while True:
success, img = cap.read()
cv2.imshow("Image", img)
cv2.waitKey(0)
我应该更改什么以获得视频输出而不是图像 output.Please 帮助。(当前使用 pycharm)。每当我 运行它给出一些连续图片输出的代码。
cv2.waitKey(1)
你对 waitKey
的论点应该是 (1)
,而不是 (0)
。
根据 OpenCV 文档,视频捕获循环的一般形式应如下所示:
import cv2 as cv
cap = cv.VideoCapture(0)
if not cap.isOpened():
print("Cannot open camera")
exit()
while True:
# Capture frame-by-frame
ret, frame = cap.read()
# if frame is read correctly ret is True
if not ret:
print("Can't receive frame (stream end?). Exiting ...")
break
# Display the resulting frame
cv.imshow('frame', frame)
if cv.waitKey(1) == ord('q'):
break
# When everything done, release the capture
cap.release()
cv.destroyAllWindows()
您的代码未按预期运行,因为您正在调用 cv.waitKey(0)
。这将无限显示 window 直到任何按键。您应该改为调用 cv.waitKey(1)
,因为它会显示 1 毫秒的帧并继续下一帧。 ord('q')
的相等性检查允许循环到 break
当您仅按下 Q
键时。
我写的代码是-
import cv2
cap = cv2.VideoCapture(0)
while True:
success, img = cap.read()
cv2.imshow("Image", img)
cv2.waitKey(0)
我应该更改什么以获得视频输出而不是图像 output.Please 帮助。(当前使用 pycharm)。每当我 运行它给出一些连续图片输出的代码。
cv2.waitKey(1)
你对 waitKey
的论点应该是 (1)
,而不是 (0)
。
根据 OpenCV 文档,视频捕获循环的一般形式应如下所示:
import cv2 as cv
cap = cv.VideoCapture(0)
if not cap.isOpened():
print("Cannot open camera")
exit()
while True:
# Capture frame-by-frame
ret, frame = cap.read()
# if frame is read correctly ret is True
if not ret:
print("Can't receive frame (stream end?). Exiting ...")
break
# Display the resulting frame
cv.imshow('frame', frame)
if cv.waitKey(1) == ord('q'):
break
# When everything done, release the capture
cap.release()
cv.destroyAllWindows()
您的代码未按预期运行,因为您正在调用 cv.waitKey(0)
。这将无限显示 window 直到任何按键。您应该改为调用 cv.waitKey(1)
,因为它会显示 1 毫秒的帧并继续下一帧。 ord('q')
的相等性检查允许循环到 break
当您仅按下 Q
键时。