You need to enable JavaScript to run this app. 用cv2调用摄像头为何输出图片而非视频?该如何修改代码?
优惠活动
大模型
产品
解决方案
定价
更多

用cv2调用摄像头为何输出图片而非视频?该如何修改代码?

问题原因

问题出在cv2.waitKey(0)的参数设置:

  • cv2.waitKey()的入参是等待键盘输入的毫秒数,传0代表无限期等待用户按下任意按键才会继续执行后续代码,所以程序每显示一帧就会卡住,只有手动按键才会刷新下一帧,表现为连续静态图。

修改方案

把waitKey的参数改为1~10的小整数,同时补充异常判断、退出逻辑和资源释放代码即可,修改后的完整代码如下:

import cv2

cap = cv2.VideoCapture(0)
# 校验摄像头是否正常打开
if not cap.isOpened():
    print("摄像头打开失败")
    exit()

while True:
    success, img = cap.read()
    # 帧读取失败直接退出
    if not success:
        print("帧读取失败,程序退出")
        break

    cv2.imshow("Image", img)
    # 等待1毫秒,按下ESC键(ASCII码27)退出
    if cv2.waitKey(1) & 0xFF == 27:
        break

# 释放摄像头资源
cap.release()
# 销毁所有OpenCV窗口
cv2.destroyAllWindows()

内容的提问来源于stack exchange,提问作者Aditya . Mallick

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.12 15:45:04