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

树莓派安装OpenCV3.3.0后仍出现ImportError: No module named cv2求助

解决树莓派上ImportError: No module named cv2及代码错误问题

一、先搞定ImportError: No module named cv2核心问题

这个报错大概率是你运行代码的Python版本和安装OpenCV的版本不匹配——树莓派默认python命令指向Python 2.7,而你是给Python 3.5装的OpenCV,自然找不到模块。

  • 第一步:换正确的运行命令
    别用python Face_recognition.py,改用Python 3的命令启动:
    python3 Face_recognition.py
    
  • 第二步:验证OpenCV是否真的装到Python3里
    打开Python3终端:
    python3
    
    输入两行代码测试:
    import cv2
    print(cv2.__version__)
    
    如果能输出3.3.0,说明安装没问题,只是之前用错了运行命令;如果还是报错,就得重新检查OpenCV的编译过程,重点确认cmake配置时,是否把Python3的路径(比如PYTHON3_EXECUTABLE、PYTHON3_INCLUDE_DIR这些参数)指向了你的Python3.5目录。

二、修复代码里的语法错误

就算解决了cv2的问题,你的代码现在运行也会报错,这两处得改:

  • 错误写法:
    cap = set(3,640) #set Width
    cap = set(4,480) #set Height
    
    这里set()是Python内置的集合函数,不是摄像头对象的方法,正确写法是调用cap.set(),而且别把结果重新赋值给cap:
    cap.set(3, 640) # 设置画面宽度
    cap.set(4, 480) # 设置画面高度
    

三、完整修正后的代码

import numpy as np
import cv2
cap = cv2.VideoCapture(0)
cap.set(3, 640) # 设置宽度
cap.set(4, 480) # 设置高度
while(True):
    ret, frame = cap.read()
    # 加个判断,避免摄像头读取失败时报错
    if not ret:
        print("无法获取摄像头画面")
        break
    frame = cv2.flip(frame, -1) # 垂直翻转画面
    gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
    cv2.imshow('frame', frame)
    cv2.imshow('gray', gray)
    k = cv2.waitKey(30) & 0xff
    if k == 27: # 按ESC键退出
        break
cap.release()
cv2.destroyAllWindows()

额外提示:如果是USB摄像头,偶尔设备索引不是0,可以试试cv2.VideoCapture(1)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.11 07:38:11