ububtu1804下opencv3.4.10+opencv_contrib3.4.10编译安装及问题解决

opencv_contrib提供了一些比较新或者说还不够成熟的函数(或者有专利),因为不够稳定所以没有加入到opencv中,但也有人要用到,所以就创建了这个项目。

安装之前要先安装依赖库,在终端输入一下命令:

sudo apt-get install build-essential
sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev

 

然后要下载你要的版本的opencv和opencv_contrib.zip文件,注意版本要对应。下载地址:https://github.com/opencv/opencv/tags和https://github.com/opencv/opencv_contrib/tags

然后将两个文件解压,将opencv_contrib移动到opencv目录下,并在opencv文件创建build文件夹。

然后在终端输入:

cd build
cmake -DOPENCV_ENABLE_NONFREE:BOOL=ON -DOPENCV_EXTRA_MOUDLES_PATH=绝对路径/opencv_contrib-3.4.10/modules .. 
make
-j8
sudo make install

其中 -DOPENCV_ENABLE_NONFREE:BOOL=ON 语句可以生成SURF等有专利的算法的库,有了这些库就可以使用SURF等算法,不加这句进行cmake会出现错误:

This algorithm is patented and is excluded in this configuration; Set OPENCV_ENABLE_NONFREE CMake option and rebuild the library in function 'create'

make操作时会报错,如果只想编译部分文件,或者有的文件编译报错可以使用如下命令,跳过特定文件的编译。

cmake -DOPENCV_EXTRA_MODULES_PATH=绝对路径/opencv_contrib-3.4.10/modules -DBUILD_opencv_legacy=OFF ..

 如果没有错误,编译完成后再进行安装,在终端输入:

sudo make install

 

 

错误1:boostdesc_bgm.i:没有那个文件或目录

解决方法:下载boostdesc_bgm.i等文件,并将其移动到opencv_contrib_3.4.10/modules/xfeatures2d/src目录下

下载链接:https://pan.baidu.com/s/1DmwL2IG2ZzL4nNhmKkqrIA  提取码:vtld 

 

错误2:opencv2/xfeatures2d/cuda.hpp:没有那个文件或目录

解决方法:将opencv_contrid-3.4.10/modules/xfeatures2d/include/opencv2下的xfeatures2d文件夹和xfeatures2d.hpp拷贝到

opencv-3.4.10/modules/stitching/include/opencv2目录下,和stitching文件夹并列。

错误3:opencv2/xfeatures2d.hpp:没有那个文件或目录

解决方法:将opencv_contrid-3.4.10/modules/xfeatures2d/include/opencv2下的xfeatures2d文件夹和xfeatures2d.hpp拷贝到

opencv-3.4.10/opencv_contrib-3.4.10/modules/sfm/include/opencv2目录下,和sfm文件夹和sfm.hpp并列。

 重新make即可,最后不要忘记install。

 

posted @ 2020-06-29 14:48  菠萝超级酸  阅读(911)  评论(0编辑  收藏  举报