写点什么

树莓派 3b+ python3.5+opencv3.4.1 下载安装及配置详解

作者:Five
  • 2022 年 8 月 31 日
    四川
  • 本文字数:1795 字

    阅读完需:约 6 分钟

树莓派3b+ python3.5+opencv3.4.1下载安装及配置详解

 树莓派 3b+ python3.5+opencv3.4.1 下载安装及配置详解


经过痛苦历程后总算安装和配置好了 opencv3

记录一下 可行的树莓派 3B+  python3.5+opencv3.4.1 下载安装及配置

1 扩大 TF 的空间

扩大 TF 卡的空间,如果不做这步操作,后面会出问题,比如卡死。输入(命令行)

sudo raspi-config
复制代码


然后选择" Advanced Options "然后选择" Expand Filesystem "然后重启树莓派




2 OpenCV-3.4.1 和 OpenCV_Contrib-3.4.1 源文件下载

这里大家可以去官网下载,直接分享下载链接:

https://github.com/opencv/opencv/archive/3.4.1.zip

https://github.com/opencv/opencv_contrib/archive/3.4.1.zip

  下载后在 /home/pi/Downloads 下创建 opencv 文件夹解压 如图:

 


3 开启虚拟环境 venv(在树莓派上开启虚拟可以解决一些版本不兼容的问题)

     3.1 安装 virtualenv

 sudo apt-get install virtualenv -y
复制代码


    3.2  创建虚拟环境(以 python3.5 为例,路径自定义)

virtualenv -p /home/pi/venv/bin/python3.5 venv
复制代码


   3.3  开启虚拟环境

source /home/pi/venv/bin/activate
复制代码


 开启后会带 venv 的标识



​编辑

4 在虚拟环境下安装 numpy

sudo pip3 install numpy
复制代码


  安装后退出虚拟环境

deactivate
复制代码


 5 安装需要依赖的库

开始为 OpenCV 安装做准备,配置所需的库(一次一行)


sudo apt-get install build-essential cmake pkg-configsudo apt-get install libjpeg-dev libtiff5-dev libjasper-dev libpng12-devsudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-devsudo apt-get install libxvidcore-dev libx264-devsudo apt-get install libgtk2.0-devsudo apt-get install libatlas-base-dev gfortransudo apt-get install python2.7-dev python3-dev
复制代码


6  opencv 的编译

 6.1 编译要用到 CMake,这里我们使用图形界面,安装 cmake-qt-gui:

  sudo apt-get install cmake-qt-gui
复制代码


  6.2 首先进到 opencv-3.4.1 的目录下,新建 build 文件夹,然后在终端激活 python 虚拟环境的条件下,打开 CMake:

source /home/pi/venv/bin/activate
cd /Downloads/opencv/opencv-3.4.1
mkdir build
cmake-gui
复制代码


 6.3 选择源文件路径,编译文件夹选择刚才新建的 build 文件夹,

点击左下角 Configure,第一次完成是红色的,再点一 l 两次就变成白色了,如图:



6.4 然后我们查找 OPENCV_EXTRA_MODULES_PATH 项,将 OpenCV_Contrib-3.4.1 的路径填进去,

点击 Configure,如图:



这样 Opencv_contrib-3.4.1 就被添加进去了,然后我们修改关于 Python 的参数,在查找栏键入 PYTHON:取消 BIULD_opencv_python2,勾选 INSTALL_PYTHON_EXMAPLES,这样就设置为编译 Python3 的版本了,

再次点击 Configure,如图:



然后就可以生成编译文件了,点击 Generate!



然后退出 CMake,进入 build 文件夹下,此处再次确认,swap 分区修改为至少 5GB,python3 的虚拟环境已经激活!

 下述命令开始编译:

cd buildmake -j2  //或者 make -j4 或者 make  推荐 make -j2 , 用make -j4 树莓派感觉受不了 make 感觉慢
复制代码


然后就开始几个小时等待了 中途不出错 就安好了 ,若报错 就重新 make 一下 不行的话 就看报什么错 对症下药了



注意,在此期间,树莓派要供电充足,不要运行其它任务,以免因为内存不够什么的报错。


编译完成

make命令执行完成之后,执行下面的命令安装

sudo make install
sudo ldconfig
复制代码


最后一步,因编译后的库文件 cv2.so 被输出为 cv2.cpython-35m-arm-linux-gnueabihf.so,这将导致该模块在 Python3 中无法 import 进来,

我们到该库文件的安装目录/usr/local/lib/python3.5/site-packages/下,将其重命名为 cv2.so:

  ls -l /usr/local/lib/python3.5/site-packages/
  cd /usr/local/lib/python3.5/site-packages/
  sudo mv cv2.cpython-35m-arm-linux-gnueabihf.so cv2.so
复制代码


再返回 Python3 的虚拟环境目录下在对应的文件夹内建立一个链接,像这样:   

 cd /home/pi/venv/lib/python3.5/site-packages/
ln -s /usr/local/lib/python3.5/site-packages/cv2.so cv2.so
复制代码


这两步就解决了 cv2 模块无法导入的问题,现在让我们尝试在 Python3 中导入模块并打印版本号: 

  注意 需要如果使用 opencv 都得在虚拟环境中使用 (要做人脸识别什么的都得在虚拟环境中执行)

    import cv2
    print(cv2.__version__)
复制代码



出现版本号则成功了

还有一点 用 opencv 时可能会因为权限问题 报错 所以给 venv 改改权限

sudo chmod 777 venv
复制代码



点点赞 关注一下  ~_~

发布于: 刚刚阅读数: 4
用户头像

Five

关注

有事多研究,没事瞎琢磨 2022.08.02 加入

第三季签约作者,阿里云签约作者 ,CSDN 前端领域优质创作者 , 博客专家认证, 华为云云享专家。 退役ACMer, IT技术狂热爱好者 擅长领域,web前端,算法, 业务架构,可视化,富文本编辑器等。

评论

发布
暂无评论
树莓派3b+ python3.5+opencv3.4.1下载安装及配置详解_树莓派_Five_InfoQ写作社区