| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 人工智能 -> 在Raspberry PI 4 上安装OpenCV 4.5.4+ Python3.7 -> 正文阅读 |
|
[人工智能]在Raspberry PI 4 上安装OpenCV 4.5.4+ Python3.7 |
准备工作1:拓展文件系统首先你要确定你有没有拓展文件系统?如果没有的话需要先进行设置: sudo raspi-config 选择高级选项菜单 ?然后选择拓展文件系统 之后系统会提示你重启,如果没有的话通过命令重启 sudo reboot 准备工作2:安装依赖关系第一步需要更新和升级现有的软件包: sudo? apt-get update sudo apt-get upgrade 这可能需要花费你几分钟的时间,如果速度过慢可以选择换软件源 : 1 在命令窗口输入 2 将原本的内容全部注释掉(在文件前面加#号),然后复制粘贴以下内容到最下方: deb http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ buster main non-free contrib rpi (这是国内的清华源,自用感觉还不错) 如下图所示: 然后Ctrl+O写入 ,Enter确定? ,Ctrl+X退出 第二步 我们需要一些开发工具,包括CMAKE sudo apt-get install build -essential cmake pkg-config 第三步,我们需要一些图像和视频的I/O包以确保能处理视频流和图片 图像包: 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 第四步,为了编译OpenCV的highgui模块,我们需要安装GTK开发库(highgui模块用于在屏幕上显示图像并构建基本的GUI) sudo apt-get install libgtk2.0-dev libgtk-3-dev 第五步,安装一些额外的依赖进一步优化(矩阵操作) sudo apt-get install libatlas-base-dev gfortran 第六步,安装python3头文件来绑定编译Opencv sudo apt-get python3-dev 下载OpenCV源代码做好所有准备工作之后,我们可以从OpenCV官方的仓库中获取,我现在的版本是OpenCV4.5.4,可以通过访问官方仓库查询最新版本,然后后面的版本号全部替换4.5.4就可以。 查询版本 ?确定了版本号就让我们开始安装: cd? - (进入主目录,下载路径为/home/pi/) wget -O opencv.zip https://github.com/Itseez/opencv/archive/4.5.4.zip? #获取压缩包 unzip opencv.zip? #解压 我们还需要获取OpenCV_contrib存储库(注意:确保OpenCV和 OpenCV_contrib版本相同) ?cd - wget -O opencv_contrib.zip https://github.com/Itseez/opencv_contrib/archive/4.5.4.zip unzip opencv_contrib.zip 在开始编译OpenCV之前,我们需要安装Python pip wget https://bootstrap.pypa.io/get-pip.py sudo python3 get-pip.py 了解虚拟环境virtualenv和virtualenvwrapper虚拟环境是一种特殊工具,他可以为每个不同的项目创建不同的环境以满足需要,它解决了项目A需要版本2.7,而B项目需要3.7的问题 开始安装: sudo pip install virtualenv? virtualenvwrapper sudo rm -rf ~/.cache/pip??? #删除 pip安装缓存目录 安装好之后我们需要配置文件: sudo nano ~/.profile??? #进入profile配置 在# virtualenv and virtualenvwrapper后面添加: export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3 ?然后Ctrl+O写入 ,Enter确定? ,Ctrl+X退出 现在配置文件更新之后,我们需要应用它: source ~/.profile 创建Python虚拟环境 mkvirtualenv cv -p python3???? #cv是我给我的镜像起的名字,当然你可以起任何名字 下面是我整理的一些虚拟环境的常用命令: mkvirtualenv # 创建虚拟环境 进入虚拟环境: source ~/.profile workon cv 当你重启树莓派或者或者打开一个新的终端都需要通过这个命令重新进入虚拟环境 为了验证你在虚拟环境中,当你看到(cv)就表示你在虚拟环境中 在你的Raspberry Pi上安装NumPy现在我们进入虚拟环境cv中,我们需要的唯一依赖就是NumPy pip install numpy 编译安装OpenCV第一步首先我们要确保进入虚拟环境,同上进入步骤 第二步我们要使用CMake来配置我们的版本 cd ~/opencv-4.5.4/??? #进入opencv的文件夹 mkdir build??? #创建安装目录 cd build??? #进入安装目录 ?sudo cmake -D CMAKE_BUILD_TYPE=RELEASE \ ?#/CMAKE_BUILD_TYPE是编译方式 第三步编译前配置交换空间大小 完成Cmake配置之后回到最上级目录 打开你的sudo? nano /etc/dphys-swapfile然后修改CONF_SWAPSIZE变量:
这使得编译不会因为内存问题停止 然后我们要激活交换空间: sudo /etc/init.d/dphys-swapfile stop??? #停止 sudo /etc/init.d/dphys-swapfile starting? #启动 现在我们重新进入目录准备开始编译 cd ~/opencv-4.5.4/build sudo make -j4? #编译 编译的过程需要大概一个小时左右,需要耐心等待。 编译完成之后,应该如下图所示: 然后我们开始安装它: sudo make install?? #安装 sudo ldconfig? #更新动态链接库
安装之后,OpenCV应该安装在/usr/local/lib/python3.7/site-packages中,我们用ls命令验证一下 我们可以看到cv2文件 ,现在我们要将他绑定到Python 3.7 的虚拟环境中 cd ~/.virtualenvs/cv/lib/python3.7/site-packages/ ln -s /usr/local/lib/python3.7/site-packages/cv2 cv2 ? 当一切就绪之后我们需要测试以下OpenCV是否安装正常,我们可以试着查询以下OpenCV的版本 ?python3 import cv2 cv2.__version__
? 最后不要忘记更换交换大小!!!如果忘记这一步可能会导致内存损坏 sudo? nano /etc/dphys-swapfile
?进入之后将刚刚的1024注释掉然后原来的100取消注释,最后重启即可: sudo /etc/init.d/dphys-swapfile stop??? #停止 sudo /etc/init.d/dphys-swapfile starting? #启动 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/27 8:25:06- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |