You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Python中使用cv2切换不同的摄像头

解决OpenCV切换外接摄像头的问题
  • 遍历摄像头设备索引
    OpenCV通过cv2.VideoCapture(index)调用摄像头,索引从0开始(通常对应内置主摄像头),外接摄像头一般对应1、2等索引。可以用以下脚本快速找出可用设备的索引:

    import cv2
    
    for i in range(5):
        cap = cv2.VideoCapture(i)
        if cap.isOpened():
            print(f"可用摄像头索引: {i}")
            cap.release()
    

    找到外接摄像头对应的索引后,直接替换你代码中的VideoCapture参数即可。

  • 确保摄像头资源完全释放
    如果之前的摄像头进程未彻底释放,会导致新设备无法正常打开。每次使用完摄像头后必须调用cap.release(),切换摄像头前要先关闭当前的VideoCapture实例,再初始化新的设备。

  • 系统层面排查设备状态
    任务管理器禁用主摄像头可能存在延迟或未生效的情况,建议:

    • 拔插外接摄像头,让系统重新识别设备
    • 打开设备管理器,在「图像设备」中确认外接摄像头已被正常识别(无黄色感叹号)
    • 若外接摄像头需要驱动,确保已安装对应官方驱动
  • 指定摄像头API后端或分辨率
    部分外接摄像头需要指定特定的API后端才能正常工作,比如Windows系统可尝试使用DirectShow后端:

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

    也可以手动设置摄像头分辨率,避免因分辨率不兼容导致的无法启动:

    cap = cv2.VideoCapture(1)
    cap.set(cv2.CAP_PROP_FRAME_WIDTH, 1280)
    cap.set(cv2.CAP_PROP_FRAME_HEIGHT, 720)
    

内容的提问来源于stack exchange,提问作者Suryash

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 03:01:09