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

Raspberry Pi 3B+搭配Camera V1.3无法调用 无法运行OpenCV Python脚本求助

树莓派3B+摄像头无法调用故障解决方案

核心故障原因

2021年10月发布的Raspberry Pi OS(Bullseye)默认废弃了原有的MMAL摄像头驱动栈,改为使用libcamera驱动,与树莓派3B+的硬件适配存在兼容性问题,同时你之前的配置存在GPU内存不足、驱动冲突的情况,才会出现vcgencmd get_camera返回0、调用工具报错的问题。

修复步骤

  • 第一步:修正config.txt配置

    编辑/boot/config.txt文件,删除之前自行添加的ov5647、imx219、vc4-kms-v3等单独驱动配置行,添加/修改以下配置:
    gpu_mem=128
    start_x=1
    
    保存后退出。
  • 第二步:启用legacy摄像头驱动栈

    执行sudo raspi-config,依次选择「Interface Options」→「Camera」,确认启用摄像头后,找到「Legacy Camera Stack」选项,选择启用,保存配置后重启设备。
  • 第三步:校验硬件识别状态

    重启后执行vcgencmd get_camera,正常输出应为supported=1 detected=1。如果detected仍为0,检查摄像头排线两端的安装方向:银色金属面需朝向网口/HDMI接口方向,不要插反。
  • 第四步:验证摄像头可用性

    执行raspistill -o test.jpg,正常会弹出5秒预览窗口,且当前目录会生成拍摄的test.jpg照片。
    如果你需要使用libcamera栈,不要通过VNC远程运行libcamera相关工具(VNC无硬件渲染权限,会触发DRI2认证错误),接本地HDMI显示器可正常运行,远程运行需添加参数:libcamera-hello --qt-preview。
  • 第五步:Python OpenCV调用适配

    完成上述配置后,直接通过默认方式调用即可,示例代码:
    import cv2
    # 调用/dev/video0设备
    cap = cv2.VideoCapture(0)
    if not cap.isOpened():
        print("摄像头打开失败")
        exit()
    ret, frame = cap.read()
    if ret:
        cv2.imwrite("capture_result.jpg", frame)
    cap.release()
    
    如果你坚持使用libcamera栈,需要安装gstreamer依赖后指定调用方式:
    先执行安装命令:sudo apt install -y gstreamer1.0-tools gstreamer1.0-plugins-base gstreamer1.0-plugins-good gstreamer1.0-plugins-bad python3-gst-1.0
    调用代码修改为:cap = cv2.VideoCapture(0, cv2.CAP_GSTREAMER)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 16:36:02