最新在树莓派上安装OpenCV(实测有效)
通过源代码安装
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官方出现的问题
这里我提供了缺少的文件 链接:
下载好之后可以将解压之后的所有.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
