很早就开始用opencv了,但是一直用的官方release版本,没有自己编译过。因为实验原因,一天之内编译了三分不同版本的opencv,把遇到的坑大致记录一下。
下载的实验项目代码中包含了
#include <opencv2/core/internal.hpp> #include <opencv2/contrib/contrib.hpp>最初以为需要自己编译带有包含contrib模块,在经过编译了 opencv3 和 opencv4 均没有解决。另外,opencv3 和 opencv4 不包含 AlgorithmInfo 类。
查阅 opencv开发手册 发现 AlgorithmInfo 类出现在了opencv2的版本里。因此,编译了opencv2,所有问题迎刃而解。
opencv_contrib独立于opencv,不包含在opencv官方的发行版中。需要自己编译,编译过程移步weijifen000博客。这应该是我看过最详细的教程了。
编译过程中,遇到的问题:
最多的问题应该就是download失败的问题。根据weijifen000博客,查看download.log文件,将对应的文件下载好,放在对应目录即可。
有可能会遇到 找不到 xfeatures2d 或者 下载失败的问题。
这个需要在 opencv/modules/stitching/CMakeLists.txt 的源文件将 opencv_contrib/modules/xfeatures2d/include 路径加入
INCLUDE_DIRECTORIES("opencv_contrib/modules/xfeatures2d/include")建议将路径改为绝对路径,不容易出错
configure 通过后,在 generate 的时候报错。
具体报错记不清了,大致处理过程,就是自己下载相应模块的源码。复制到build的源代码对应目录下。然后修改相应模块下的CmakeList文件。大概记录下,下次遇到,用相同的套路+百度,应该可以解决。