树莓派安装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 Heightset()是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
相关产品推荐
相关产品推荐

