00-在64位树莓派上安装OpenCV

说明

     为了处理视频和其他图像相关的任务,我们一定要安装OpenCV。所以我们这里尝试通过编译源码的方式在64位树莓派上安装OpenCV。

参考文档:Install OpenCV on Raspberry 64 OS - Q-engineering

实验环境

  • 开发板选用树莓派4B 8GB,搭载附赠的摄像头,用的是64GB的SD卡:

  • 系统选用官方最新的64位系统带桌面款,已经进行了基本的环境配置:

准备工作

首先,输入以下命令,检查磁盘里一定要能找到以下三个文件:

find /usr -name "opencv.hpp"
find /usr -name "libopencv_highgui.so"
pkg-config --cflags opencv4

安装OpenCV

 方法1:pip

  如果只使用Python环境,那么我们可以直接使用以下命令进行安装:

pip3 install opencv-contrib-python

但是这种安装方式无法应用于C++,有很大的局限性。

方法2:apt-get

 我们也可以用apt-get的方法安装OpenCV:

# only C++
sudo apt-get install libopencv-dev
# need Python also?
sudo apt-get install python3-opencv

这种方法也很简单,但是,并不能保证安装的版本是最新的!使用时可能会有一些bug。

方法3:编译源码

事实上,编译源码才是在树莓派上安装OpenCV最好的方法,你总能得到最新版本,并且可以控制你想要得到的所有特性。注意,OpenCV至少需要5.8GB的内存。

在此之前,我们先扩容虚拟内存,防止出现内存不足的状况:(注意:如果你的树莓派是4GB的或者更小的内存,一定要进行虚拟内存的扩容,否则无法安装OpenCV,如果你的树莓派和我一样是8GB的,那么理论上不需要进行这一步也可以安装)

sudo nano /sbin/dphys-swapfile

将CONF_MAXSWAP改为4096,Ctrl+S保存,Ctrl+X退出:

sudo nano /etc/dphys-swapfile

 把CONF_SWAPSIZE改为4096,Ctrl+S保存,Ctrl+X退出:

 然后重启:

sudo reboot

查看内存:

其实不难解释,我们的树莓派是 8GB内存,即图中的7762MB,系统软件占用内容为316MB,剩余6890MB,大概6GB多,由于缓存Cache的存在,总共可用内存为7322MB,理论上只要占用内存不超过7322MB,我们的树莓派可以应付的过来,为了保险起见,我们给树莓派4096MB的虚拟内存,这样可以处理的范围更大(7.7+4.1=11.8GByte),可以运行更大规模的应用程序。

一键安装OpenCV的脚本

为了方便起见,我们可以直接使用网上的脚本进行安装,否则大概要用60行左右的命令。(这里可能需要代理)

wget https://github.com/Qengineering/Install-OpenCV-Raspberry-Pi-64-bits/raw/main/OpenCV-4-8-0.sh
sudo chmod 755 ./OpenCV-4-8-0.sh
./OpenCV-4-8-0.sh

 如果不用脚本的话,可以参考这个链接:

Install OpenCV on Raspberry 64 OS - Q-engineering

这个安装过程很久(我大概花了90分钟),耐心等候即可。

恢复刚刚设置的虚拟内存:

sudo nano /sbin/dphys-swapfile

将CONF_MAXSWAP改为2048,Ctrl+S保存,Ctrl+X退出。

sudo nano /etc/dphys-swapfile

 把CONF_SWAPSIZE改为100,Ctrl+S保存,Ctrl+X退出。

至此,OpenCV安装完成,我们可以用如下命令得知我们安装的是什么版本的OpenCV:

python
>>> import cv2
>>> print( cv2.getBuildInformation() )

附:Python虚拟环境的创建方法

我们首先获取Python的位置(我的Python是Python 3.9.2)

# get location
which python 3.9
# merge VIRTUALENVWRAPPER_PYTHON=location/version
echo "export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python" >> ~/.bashrc
# reload profile
source ~/.bashrc

然后安装虚拟环境的软件:

sudo pip3 install virtualenv
sudo pip3 install virtualenvwrapper

然后我们可以通过mkvirtualenv+环境名来创建虚拟环境,使用workon+环境名进入创建好的虚拟环境,使用deactivate退出当前虚拟环境:

echo "export WORKON_HOME=$HOME/.virtualenvs" >> ~/.bashrc
echo "source /usr/local/bin/virtualenvwrapper.sh" >> ~/.bashrc
source ~/.bashrc
mkvirtualenv cv480
# to quit working in cv480
(cv480) deactivate
# to activate cv430 the next time
workon cv480

附:Code::Blocks安装方法

我们需要一个好的IDE来写C++的程序,我们当然可以用系统自带的Geany来写,但是Geany不能处理大的项目,只能处理单独的文件,而且还缺少一些Debug工具。

我们可以使用Code::Blocks,该集成开发环境可以处理多文件项目,并具有出色的调试功能,例如检查变量、线程或CPU寄存器。这个IDE相对来说比较简单直观。如果有足够的内存,可以安装可选的'codeblocks-contrib'插件,其中包含valgrind、库查找器、额外的拼写检查器等功能。

sudo apt-get install codeblocks
# you can install some optional plugins.
sudo apt-get install codeblocks-contrib

结语

我们成功在64位树莓派上,通过编译源码的方式完成了OpenCV的安装,这是未来继续学习的基础。

  • 7
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值