树莓派4B源码编译opencv3.4.1
主要参考:https://blog.csdn.net/simonforfuture/article/details/101716181
零、安装准备:
升级系统:
sudo apt-get update
sudo apt-get upgrade
安装依赖:
sudo apt-get install build-essential cmake pkg-config libjpeg-dev libtiff5-dev libjasper-dev libpng12-dev libavcodec-dev libavformat-dev libswscale-dev libv4l-dev libxvidcore-dev libx264-dev libgtk2.0-dev libgtk-3-dev libatlas-base-dev gfortran
安装python3工具:
sudo apt-get install python3 python3-setuptools python3-dev
设置pip:
wget https://bootstrap.pypa.io/get-pip.py
sudo python3 get-pip.py
一、安装opencv3.4.1
安装numpy:
sudo pip3 install numpy
安装必要的opencv包:
sudo apt-get install libopencv-dev python-opencv
获取软件包:
wget -O opencv.zip https://github.com/Itseez/opencv/archive/3.4.1.zip
wget -O opencv_contrib.zip https://github.com/Itseez/opencv_contrib/archive/3.4.1.zip
unzip opencv.zip
unzip opencv_contrib.zip
//也可以用下载工具到对应软件地址下载
源码编辑安装:
cd ~ & mkdir opencv
mv opencv_contrib/ ~/opencv/
cd ~/opencv-3.4.1/ & mkdir build
cd build
cmake -D CMAKE_BUILD_TYPE=RELEASE \
-D CMAKE_INSTALL_PREFIX=/usr/local \
-D INSTALL_C_EXAMPLES=ON \
-D INSTALL_PYTHON_EXAMPLES=ON \
-D OPENCV_EXTRA_MODULES_PATH=~/opencv/opencv_contrib-3.4.1/modules \
-D ENABLE_PRECOMPILED_HEADERS=OFF \
-D BUILD_EXAMPLES=ON ..
cmake过程中出现:fatal error: boostdesc_bgm.i: 没有那个文件或目录 #include "boostdesc_bgm.i"错误:
缺少一些文件,主要有:
boostdesc_bgm.i boostdesc_bgm_bi.i boostdesc_bgm_hd.i boostdesc_lbgm.i boostdesc_binboost_064.i boostdesc_binboost_128.i boostdesc_binboost_256.i vgg_generated_120.i vgg_generated_64.i vgg_generated_80.i vgg_generated_48.i
可以去网站下好,拷贝到: ~/opencv/opencv_contrib-3.4.1/modules/xfeatures2d/src目录即可
错误的原因是缺少cuda.hpp文件,这些文件在opencv_contrib-.4.1/modules/xfeatures2d/include/opencv2
目录下,所以直接将这个目录下的文件拷贝到opencv-3.4.1/modules/stitching/include/opencv2/解决,其他请找百度吧
修改交换空间:
停止交换空间的使用:sudo /etc/init.d/dphys-swapfile stop
增加交换空间容量,修改/etc/dphys-swapfile中的变量CONF_SWAPSIZE的值100改成1024或2048
开启交换空间的使用:sudo /etc/init.d/dphys-swapfile start
多线程编译opencv:(需要漫长的等待,估计要2小时左右吧)
make -j4
当make的结果为100%时,opencv编译成功,安装命令:
sudo make install
sudo ldconfig
测试:
进入python3环境:
终端输入:python3
import cv2
cv2.__version__
显示版本号为‘3.4.1’即为正常
恢复交换分区的大小:
停止交换空间的使用:sudo /etc/init.d/dphys-swapfile stop
增加交换空间容量,修改/etc/dphys-swapfile中的变量CONF_SWAPSIZE的1024或2048改成值100
开启交换空间的使用:sudo /etc/init.d/dphys-swapfile start