在Ubuntu20.04下安装OpenCV以及Contrib时避坑

在OpenCV官网下载OpenCV以及OpenCV Contrib文件夹后,

分别在根目录下进行解压。

大部分帖子使用CmakeGUI进行编译,笔者年级大了,使用控制台命令行

首先解压的OpenCV文件夹

mkdir build
cd build
cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local ..

这一步就是安装你下载的OpenCV的对应版本的基本功能

注意后面的 .. 符号一定不要打错了

一切顺利之后正常的使用

sudo make -j4
sudo make install

就可以完成基本的OpenCV安装

但是在解压OpenCV_contrib的文件夹之后再编译的时候,错误简直不要太多,简直满篇飘红,笔者的学弟表示遇到这种问题直接放弃下班比较好,哈哈哈

言归正传,在根目录下解压OpenCV_contrib文件夹后,cd到OpenCV的build文件夹,运行

cmake -D CMAKE_BUILD_TYPE=RELEASE
    -D CMAKE_INSTALL_PREFIX=/usr/local  ..

    -D OPENCV_EXTRA_MODULES_PATH=../opencv_contrib/modules ..

意思就是只编译contrib拓展模块的内容,注意最后路径前面,后面的 ..,这些都是相对路径,一定要搞清楚把路径弄明白。

接下来就是漫长的编译,当运行到Numeric包中的大篇幅如下报错比如

integer_sequence_algorithm.h:64:21: error: ‘integer_sequence’ is not a member of ‘std’

的时候,比如这张图:

在Ubuntu20.04下安装OpenCV以及Contrib时避坑

笔者翻山越岭找到应该是ceres版本不对应(太高)导致的,你需要的就是使用

sudo rm -r /usr/local/lib/cmake/Ceres
sudo rm -rf /usr/local/include/ceres /usr/local/lib/libceres.a
sudo rm -r /usr/local/share/Ceres

卸载当前的Ceres模块,之后再

wget ceres-solver.org/ceres-solver-1.14.0.tar.gz
cd ceres-solver-1.14.0
mkdir build
cd build
cmake ..

make -j4
make test
sudo make install

安装这个版本,之后愉快的再次进入CV的build进行编译。

笔者愉快的进行到100%后崩了,

在Ubuntu20.04下安装OpenCV以及Contrib时避坑

这里的解决方案就是

sudo make clean
sudo make

最后编译成功,

在Ubuntu20.04下安装OpenCV以及Contrib时避坑

环境验证的帖子比较多,就不再这里赘述了,祝大家都能顺利配置好自己的完整OpenCV环境体验三维重建等趣味扩展功能。。。。

Original: https://blog.csdn.net/weixin_46808875/article/details/126471302
Author: Diedider
Title: 在Ubuntu20.04下安装OpenCV以及Contrib时避坑

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/701035/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球