地址:https://github.com/rmsalinas/DBow3
cd DBoW3 #进入源文件夹
mkdir build #新建一个编译目标文件夹
cd build #将build作为make工作路径
cmake -DUSE_CONTRIB=ON .. #编译上一级目录,如果您提前安装好了contrib_modules,则使用cmake选项-DUSE_CONTRIB=ON使能SURF,否则直接运行cmake ..
make -j4 #或者换为“-j8”甚至直接“make”,这取决于您的电脑的线程数量
sudo make install #安装DBoW3

下载地址:https://github.com/opencv/opencv_contrib
把它复制到opeencv3目录下从先安装

cd build
cmake -D CMAKE_INSTALL_PREFIX=/usr/local -D CMAKE_BUILD_TYPE=Release -D OPENCV_EXTRA_MODULES_PATH=../opencv_contrib-3.4.6/modules ..
//后面“../opencv_contrib-3.4.0/modules”为你opencv_contrib的modules文件夹所在的路径
make -j8


后面报错有好几都是一样的,都用绝对路径修改


链接:https://pan.baidu.com/s/17XhXX_cLz46bsj9ZWRkNIg
提取码:p50x
解压后放到这个文件加下

在进行编译,还会出现路劲不对的报错,对程序进行修改,改写成绝对路劲就可以了。
sudo make install
sudo gedit /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
至此,opencv及opencv_contrib安装配置完成了!
进入opencv/samples/cpp/example_cmake目录下,终端打开,依次输入:
cmake .
make
./opencv_example
mkdir build #新建一个编译目标文件夹
cd build #将build作为make工作路径
cmake -DUSE_CONTRIB=ON .. #编译上一级目录,如果您提前安装好了contrib_modules,则使用cmake选项-DUSE_CONTRIB=ON使能SURF,否则直接运行cmake ..
make -j4 #或者换为“-j8”甚至直接“make”,这取决于您的电脑的线程数量
sudo make install #安装DBoW3

make[2]: *** 没有规则可制作目标“/usr/local/lib/libDBoW3.a”,由“gen_vocab” 需求。 停止。
CMakeFiles/Makefile2:72: recipe for target 'CMakeFiles/gen_vocab.dir/all' failed
make[1]: *** [CMakeFiles/gen_vocab.dir/all] Error 2
Makefile:83: recipe for target 'all' failed
cmake_minimum_required( VERSION 2.8 )
project( loop_closure )
set( CMAKE_BUILD_TYPE "Release" )
set( CMAKE_CXX_FLAGS "-std=c++11 -O3" )
# opencv
find_package( OpenCV 3.1 REQUIRED )
include_directories( ${OpenCV_INCLUDE_DIRS} )
# dbow3
# dbow3 is a simple lib so I assume you installed it in default directory
set( DBoW3_INCLUDE_DIRS "/usr/local/include" )
set( DBoW3_LIBS "/usr/local/lib/libDBoW3.so" ) #这里.a改为.so
add_executable( feature_training feature_training.cpp )
target_link_libraries( feature_training ${OpenCV_LIBS} ${DBoW3_LIBS} )
add_executable( loop_closure loop_closure.cpp )
target_link_libraries( loop_closure ${OpenCV_LIBS} ${DBoW3_LIBS} )
add_executable( gen_vocab gen_vocab_large.cpp )
target_link_libraries( gen_vocab ${OpenCV_LIBS} ${DBoW3_LIBS} )
./build/feature_training
