最新在树莓派上安装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
经验分享 程序员 微信小程序 职场和发展