linux 编译安装 opencv 和指定 opencv_contrib 库

1. 下载 opencv 和对应版本的 opencv_contrib 库

2. 使用 cmake 编译 opencv 和指定 opencv_contrib 库

# 在 opencv 源码文件夹下创建并进入 build 文件夹
cd /home/usr/opencv-4.7.0  # 请切换为你的 opencv 源码路径
mkdir build && cd build

cmake -DOPENCV_EXTRA_MODULES_PATH=/home/usr/opencv_contrib-4.x/modules/aruco -DBUILD_opencv_legacy=OFF /home/usr/opencv-4.7.0

make install

其中 -DOPENCV_EXTRA_MODULES_PATH 参数用于指定具体opencv_contrib库路径。如果需要安装多个指定 opencv_contrib 库,则用双引号和分号来提供多个 opencv_contrib 库路径,如:

cmake -DOPENCV_EXTRA_MODULES_PATH="/home/usr/opencv_contrib-4.x/modules/xfeatures2d;/home/usr/opencv_contrib-4.x/modules/aruco" -DBUILD_opencv_legacy=OFF /home/usr/opencv-4.7.0

3. opencv-3.x 注意事项

实测发现对于 opencv-3.2.0 直接使用 -DOPENCV_EXTRA_MODULES_PATH="" 来指定编译一部分额外子模块的话,会报错:

No extra modules found in folder: XXX

需要用 -DOPENCV_EXTRA_MODULES_PATH="" 指定整个 opencv_contrib 的目录,然后使用 -DBUILD_opencv_<reponame>=OFF 来关闭不需要的额外子模块的编译,就是比较麻烦,例如:

cmake -DOPENCV_EXTRA_MODULES_PATH="/home/usr/opencv_contrib-3.2.0/modules" -DBUILD_opencv_legacy=OFF -DBUILD_opencv_aruco=OFF -DBUILD_opencv_dnn=OFF /home/usr/opencv-3.2.0

4. More

记录 opencv-3.2.0 在 gcc-7 下编译不报错的命令

cmake -DENABLE_PRECOMPILED_HEADERS=OFF ..
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值