通过源代码安装
1.安装对应依赖包
sudo apt install build-essential cmake git pkg-config libgtk-3-dev \
libavcodec-dev libavformat-dev libswscale-dev libv4l-dev \
libxvidcore-dev libx264-dev libjpeg-dev libpng-dev libtiff-dev \
gfortran openexr libatlas-base-dev python3-dev python3-numpy \
libtbb2 libtbb-dev libdc1394-22-dev libopenexr-dev \
libgstreamer-plugins-base1.0-dev libgstreamer1.0-dev
2.下载OpenCV
mkdir ~/opencv_build && cd ~/opencv_build
# 如果git太慢可以将其移至码云或使用我的
#git clone https://gitee.com/victorHome/opencv.git
#git clone https://gitee.com/victorHome/opencv_contrib.git
git clone https://github.com/opencv/opencv.git
git clone https://github.com/opencv/opencv_contrib.git
3.进入对应目录并使用CMake构建
cd ~/opencv_build/opencv
mkdir -p build && cd build
# 没有CMake安装CMake
cmake -D CMAKE_BUILD_TYPE=RELEASE \
-D CMAKE_INSTALL_PREFIX=/usr/local \
-D INSTALL_C_EXAMPLES=ON \
-D INSTALL_PYTHON_EXAMPLES=ON \
-D OPENCV_GENERATE_PKGCONFIG=ON \
-D OPENCV_EXTRA_MODULES_PATH=~/opencv_build/opencv_contrib/modules \
-D BUILD_EXAMPLES=ON ..
输出最后
– Configuring done
– Generating done
– Build files have been written to: /home/xxx/opencv_build/opencv/build
这里一般都不会出现问题
4.开始编译
#j后面的数字是自己的内核数,越大编译的越快
#使用nproc命令查看自己的内核数
make -j4
编译卡顿
若编译时出现卡顿,或非常久不动
需要临时提高树莓派的交换内存
mkdir swap
cd swap
sudo dd if=/dev/zero of=sfile bs=1024 count=1000000 //提高1G
sudo mkswap sfile //转化为swap文件
sudo swapon sfile //激活swap文件
free -h //查看内存
编译出现的错误
在编译过程可能会出现
boostdesc.cpp:673:20: fatal error: boostdesc_bgm.i: No such file or directory等确实.i文件
这是OpenCV官方出现的问题
这里我提供了缺少的文件
链接: boostdesc_bgm.i等文件
下载好之后可以将解压之后的所有.i文件移进~/opencv_build/opencv_contrib/modules/xfeatures2d/src/这个路径下,然后重新进行编译
然后苦苦等待
小编已经编译了一个下午了
在以为一切都结束的情况下突然又给我爆了个错误,我心态崩了呀
错误似乎是路径没有添加,这里我们修改opencv下的CMakeLists.txt
添加我569这行代码进去
然后继续编译(建议先添加,不然又重新编译,烦)
最后终于编译完成了(非常久)
5.开始安装
sudo make install
验证OpenCV
Python验证:
C++验证:
pkg-config --modversion opencv4
通过pip下载openCV
pip3 install opencv-python
#pip install opencv-python