本帖最后由 风精灵 于 2025-7-19 09:08 编辑
OpenCV在视觉算法中的功能非常强大,其中一个原因就是该算法库一直在与时俱进的更新最新的算法,对于具有专利的算法(如SURF)以及一些还没有稳定的算法,OpenCV会将其置于扩展模块中,这些扩展模块包含在opencv_contrib代码库中。对于该第三方库,选择手动编译,不使用buildroot构建。
1. 需要先确认已经安装了opencv4 ,ELF2-linux-source/buildroot/output/elf2_fs/build/ 路径下有opencv4 的文件夹
【新提醒】buildroot中更换opencv版本 - ELF 2专区 - ElfBoard嵌入式Linux开发板学习社区 - Powered by Discuz!
【新提醒】Linux5.10.209 安装openCV4 的方法 - ELF 2专区 - ElfBoard嵌入式Linux开发板学习社区 - Powered by Discuz!
2.将附件opencv4-contrib-4.5.5 压缩包解压到ELF2-linux-source/buildroot/output/elf2_fs/build/目录下。
3.配置cmake 工具。 elf@ubuntu:~/work/ELF2-linux-source/buildroot/output/elf2_fs/build/opencv4-4.10.0$ sudo apt-get install cmake 由于没有buildroot帮我们配置交叉编译器。所以需要我们自行配置。进到ELF2-linux-source/buildroot/output/elf2_fs/build/opencv4-4.10.0/platforms/linux/路径下,修改aarch64-gnu.toolchain.cmake 文件。将GNU_MACHINE的路径替换成buildroot 系统里自带的交叉编译器的路径+前缀。 set(CMAKE_SYSTEM_PROCESSOR aarch64) set(GCC_COMPILER_VERSION "" CACHE STRING "GCC Compiler version") set(GNU_MACHINE "/home/elf/work/ELF2-linux-source/buildroot/output/elf2_fs/host/bin/aarch64-buildroot-linux-gnu" CACHE STRING "GNU compiler triple") include("${CMAKE_CURRENT_LIST_DIR}/arm.toolchain.cmake")
4. 进入到ELF2-linux-source/buildroot/output/elf2_fs/build/opencv4-4.10.0/目录(opencv4的源码目录)下, 创建一个名为build和add_contrib_install的文件夹,然后进入build。通过如下命令,编译opencv4.10.0及contrib第三方库。 elf@ubuntu:~/work/ELF2-linux-source/buildroot/output/elf2_fs/build/opencv4-4.10.0$ mkdir build
elf@ubuntu:~/work/ELF2-linux-source/buildroot/output/elf2_fs/build/opencv4-4.10.0$ mkdir add_contrib_install elf@ubuntu:~/work/ELF2-linux-source/buildroot/output/elf2_fs/build/opencv4-4.10.0$ cd build elf@ubuntu:~/work/ELF2-linux-source/buildroot/output/elf2_fs/build/opencv4-4.10.0/build$ cmake .. -D CMAKE_INSTALL_PREFIX=../add_contrib_install -DCMAKE_TOOLCHAIN_FILE=/home/elf/work/ELF2-linux-source/buildroot/output/elf2_fs/build/opencv4-4.10.0/platforms/linux/aarch64-gnu.toolchain.cmake -DOPENCV_EXTRA_MODULES_PATH=/home/elf/work/ELF2-linux-source/buildroot/output/elf2_fs/build/opencv_contrib-4.5.5/modules -DBUILD_opencv_xphoto=OFF -DBUILD_opencv_rgbd=OFF -DBUILD_opencv_ximgproc=OFF -DBUILD_opencv_xfeatures2d=OFF
CMAKE_INSTALL_PREFIX:表示生成的bin和libs的存放路径。 DCMAKE_TOOLCHAIN_FILE:表示cmake 交叉编译器的路径 DOPENCV_EXTRA_MODULES_PATH:表示contrib 源码中modules 的路径
5.make 进行编译 执行nproc,查看虚拟机有几个核。返回值为4,所以执行make -j4 elf@ubuntu:~/work/ELF2-linux-source/buildroot/output/elf2_fs/build/opencv4-4.10.0/build$ nproc 4 elf@ubuntu:~/work/ELF2-linux-source/buildroot/output/elf2_fs/build/opencv4-4.10.0/build$ make -j4
6. 执行make install 生成的bin和lib 将被install到CMAKE_INSTALL_PREFIX宏指定的../add_contrib_install目录中。将add_contrib_install 目录中 的lib和include 目录下的文件复制到开发板上。 elf@ubuntu:~/work/ELF2-linux-source/buildroot/output/elf2_fs/build/opencv4-4.10.0/build$ make install
|