刚刚看到,opencv4.0.1已经发布,去年安装了opencv3.4,现在想着换一个新版本到opencv来试试。安装新版本的opencv也是需要几乎一天到时间才能成功安装,因为编译opencv需要花掉几个小时到时间。
0. 前提条件
这里我采用了树莓派到3B+和一张32Gb的microSD卡,摄像头采用了罗技到USB摄像头。
同时需要把缓存增加到2GB
1. 更新系统
首先利用命令:
sudo apt-get update
sudo apt-get upgrade
更新一下系统
2. 增加缓存
首先打开文件/etc/dphys-swapfile:
sudo vim /etc/dphys-swapfile
找到参数CONF_SWAPSIZE,把这个参数到数字修改为2048
#set size to absolute value, leaving empty (default) then uses computed value
#you most likely don’t want this, unless you have an special disk situation
#CONF_SWAPSIZE=100
CONF_SWAPSIZE=2048
重启swap服务
sudo /etc/init.d/dphys-swapfile stop
sudo /etc/init.d/dphys-swapfile start
安装依赖包
我们需要提前安装编译opencv所需要到编译器,包括make、cmake、gfortran等,还有一些图像处理库,视频编解码到库文件,以及python等等到头文件。
sudo apt-get install build-essential cmake unzip pkg-config
sudo apt-get install libjpeg-dev libpng-dev libtiff-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 libgtk-3-dev
sudo apt-get install libcanberra-gtk*
sudo apt-get install libatlas-base-dev gfortran
sudo apt-get install python3-dev```
创建opencv到虚拟环境
cd ~/Documents/
python3 -m venv opencv
cd opencv
source bin/activite
这样我们就进入了opencv到虚拟环境,然后更新pip
pip install upgrade pip
接着我们可以安装numpy
pip install numpy
获取opencv
我们可以直接利用git从下载opencv:
git clone https://github.com/opencv/opencv/
git clone https://github.com/opencv/opencv_contrib/
打开opencv目录
切换到版本4.0.1
git checkout tag 4.0.1 -b build
cmake
现在我们可以利用cmake生成makefile了。
为了方便,我们可以安装cmake到gui界面。
sudo apt-get install cmake-qt-gui
现在我们需要创建安装目录
mkdir build
接着我们进入build目录
cd build
然后我们可以打开cmake-gui,直接在命令提示符哪里输入cmake-gui就可以进入了。
现在我们进入了cmake到图形界面。
接着我们点击一下configure,我们现在已经设置编译参数
我们需要修改到参数以及数值如下:
CMAKE_BUILD_TYPE=RELEASE
CMAKE_INSTALL_PREFIX=/home/pi/Documents/opencv
OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib/modules
ENABLE_NEON=ON
ENABLE_VFPV3=ON
BUILD_TESTS=OFF
OPENCV_ENABLE_NONFREE=ON
NSTALL_PYTHON_EXAMPLES=OFF
BUILD_EXAMPLES=OFF
BUILD_opencv_python2=OFF
OPENCV_FORCE_PYTHON_LIBS=ON
设置好参数后,我们就再次点击一下configure。
如果没有错误,我们就可以点击generate,生成makefile。
现在我们可以关闭cmak-gui了
编译opencv
现在我们可以直接输入命令make,然后需要等待几个小时进行编译了。
make
编译完成后,我们就可以输入命令
make install
如果没有报错,我们现在就可以利用opencv获取usb摄像头的视频进行播放。
测试opencv
为了测试opencv,我们首先打印cv2到版本。
首先输入命令python,进入python编译环境
python
然后我们就可以输入一下命令
import cv2
print(cv2.__version__)
这个时候我们可以得到输出
4.0.01