随便找一篇博客,跟着教程安装就行了。这篇博客记录安装过程中出现的问题以及解决办法。
【问题1】No such file or directory
1、无法找到文件:opencv2/xfeatures2d/cuda.hpp: No such file or directory、opencv2/xfeatures2d.hpp: No such file or directory
/home/zt/Desktop/zt/packages/opencv-3.3.0/modules/stitching/include/opencv2/stitching/detail/matchers.hpp:52:42: fatal error: opencv2/xfeatures2d/cuda.hpp: No such file or directory
或者是
/home/zt/Desktop/zt/packages/opencv-3.3.0/modules/stitching/src/precomp.hpp:91:42: fatal error: opencv2/xfeatures2d/cuda.hpp: No such file or directory
或者是
/home/zt/Desktop/zt/packages/opencv-3.3.0/modules/stitching/src/matchers.cpp:50:35: fatal error: opencv2/xfeatures2d.hpp: No such file or directory
其实这些文件都是有的,在opencv_contrib-3.3.0(相应的安装版本)中的/modules/xfeatures2d/include
文件夹下。
【解决方法】
方法1【不推荐】:
打开这些出错的文件,把包含的文件修改为绝对路径,比如:
将:#include "opencv2/xfeatures2d/cuda.hpp"
修改为:#include "/home/zt/Desktop/zt/packages/opencv-3.3.0/opencv_contrib-3.3.0/modules/xfeatures2d/include/opencv2/xfeatures2d/cuda.hpp"
(有多少这种错就要修改多少次源码,比较麻烦,虽然也能解决问题,但是不推荐)
方法2【推荐】:修改CmakeLists.txt文件
步骤 1)打开opencv-3.3.0/modules/stitching
文件夹,
/home/zt/Desktop/zt/packages/opencv-3.3.0/modules/stitching
修改该文件夹下的CmakeLists.txt
文件,在其中加入一行:
INCLUDE_DIRECTORIES("/home/zt/Desktop/zt/packages/opencv-3.3.0/opencv_contrib-3.3.0/modules/xfeatures2d/include")
改完之后长这样:
步骤 2)打开opencv-3.3.0/modules
文件夹,
/home/zt/Desktop/zt/packages/opencv-3.3.0/modules
修改该文件夹下的CmakeLists.txt
文件,在其中加入一行(同上):
INCLUDE_DIRECTORIES("/home/zt/Desktop/zt/packages/opencv-3.3.0/opencv_contrib-3.3.0/modules/xfeatures2d/include")
改完之后长这样:
步骤 3)全部修改完之后,再按照正常安装步骤先cmake、再make、再make install、再配置环境变量来安装。
cmake -D CMAKE_INSTALL_PREFIX=/usr/local -D CMAKE_BUILD_TYPE=Release -D OPENCV_EXTRA_MODULES_PATH=../opencv_contrib-3.3.0/modules -D OPENCV_GENERATE_PKGCONFIG=ON ..
等待cmake完成之后,即可正常安装:
sudo make -j8
sudo make install
sudo gedit /etc/ld.so.conf.d/opencv.conf #添加/usr/local/lib,并保存
在/etc/ld.so.conf.d/opencv.conf
中添加 /usr/local/lib:
sudo ldconfig #使配置生效
sudo gedit /etc/bash.bashrc
然后在末尾添加:
PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
export PKG_CONFIG_PATH
保存之后退出,然后运行:
source /etc/bash.bashrc
sudo updatedb
【安装成功!】
2、features2d/test/test_detectors_regression.impl.hpp: No such file or directory
解决方法:
复制opencv / modules / features2d,然后粘贴到build目录中来解决该问题。
【问题2】vgg_generated_120.i等文件缺失
下载这些文件就行了:
链接:https://pan.baidu.com/s/1Vdfn2ogtaYad_93mGVM7Ww
提取码:vynm
下载完之后把这些文件放入./opencv_contrib-3.3.0/modules/xfeatures2d/src
文件夹下就OK!
【测试是否安装成功】
进入./opencv3.3.0/samples
文件夹下的cpp
文件夹,里面有很多可测试的例子,随便运行一个:
g++ edge.cpp `pkg-config opencv --cflags --libs` -o test
效果如下: