前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >树莓派3b+ python3.5+opencv3.4.1下载安装及配置详解

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

作者头像
Fivecc
发布2022-11-21 16:23:02
6410
发布2022-11-21 16:23:02
举报
文章被收录于专栏:前端ACE

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

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

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

1 扩大TF的空间

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

代码语言:javascript
复制
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

代码语言:javascript
复制
 sudo apt-get install virtualenv -y

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

代码语言:javascript
复制
virtualenv -p /home/pi/venv/bin/python3.5 venv

   3.3  开启虚拟环境

代码语言:javascript
复制
source /home/pi/venv/bin/activate

 开启后会带 venv 的标识

4 在虚拟环境下安装numpy

代码语言:javascript
复制
sudo pip3 install numpy

  安装后退出虚拟环境

代码语言:javascript
复制
deactivate

 5 安装需要依赖的库

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

代码语言:javascript
复制
sudo apt-get install build-essential cmake pkg-config
sudo apt-get install libjpeg-dev libtiff5-dev libjasper-dev libpng12-dev
sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev
sudo apt-get install libxvidcore-dev libx264-dev
sudo apt-get install libgtk2.0-dev
sudo apt-get install libatlas-base-dev gfortran
sudo apt-get install python2.7-dev python3-dev

6  opencv的编译

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

代码语言:javascript
复制
  sudo apt-get install cmake-qt-gui

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

代码语言:javascript
复制
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的虚拟环境已经激活!

 下述命令开始编译:

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

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

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

编译完成

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

代码语言:javascript
复制
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:

代码语言:javascript
复制
  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的虚拟环境目录下在对应的文件夹内建立一个链接,像这样:   

代码语言:javascript
复制
 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 都得在虚拟环境中使用 (要做人脸识别什么的都得在虚拟环境中执行)

代码语言:javascript
复制
    import cv2

    print(cv2.__version__)

出现版本号则成功了

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

代码语言:javascript
复制
sudo chmod 777 venv
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-08-31,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 树莓派3b+ python3.5+opencv3.4.1下载安装及配置详解
    • 1 扩大TF的空间
      • 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
            • 3 开启虚拟环境venv(在树莓派上开启虚拟可以解决一些版本不兼容的问题)
              •      3.1 安装 virtualenv
              •     3.2  创建虚拟环境(以python3.5为例,路径自定义)
              •    3.3  开启虚拟环境
            • 4 在虚拟环境下安装numpy
              •  5 安装需要依赖的库
                • 6  opencv的编译
                  • 然后就开始几个小时等待了 中途不出错 就安好了 ,若报错 就重新make 一下 不行的话 就看报什么错 对症下药了
              相关产品与服务
              人脸识别
              腾讯云神图·人脸识别(Face Recognition)基于腾讯优图强大的面部分析技术,提供包括人脸检测与分析、比对、搜索、验证、五官定位、活体检测等多种功能,为开发者和企业提供高性能高可用的人脸识别服务。 可应用于在线娱乐、在线身份认证等多种应用场景,充分满足各行业客户的人脸属性识别及用户身份确认等需求。
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档