DBoW3在windows平台下的配置(win7 + vs2017)

DBoW是一个开源的将图片集转换为词袋表示的库,其采用了hierarchical tree用来实现在图片特征空间中寻找近似最近邻(approximating nearest neighbours)并生成视觉词汇,项目地址是:

DBoW3

该库由于被 ORB-SLAM 采用用于回环检测,因此逐渐被大家接受并广泛应用于回环检测、图片检索等领域。

最近在配置该库的过程中,发现网上的大部分博客都是该库在Linux下的配置,相对来说较为容易。由于种种原因,我需要在windows平台使用该库,在配置过程中我发现了很多问题,所以记录下来。我使用的是win7 + vs2017。

首先我们将该库源码 DBoW3 下载至本地,然后需要下载windows版本的 cmake,该库的\DBow3-master\DBow3-master\src 下的CMakeLists.txt文件写的有一些问题,在windows下无法成功编译。 因此,我们需要将其进行一些修改,即将最后几行注释掉:

cmake_minimum_required(VERSION 3.12)
INCLUDE_DIRECTORIES(. ./utils/)

FILE(GLOB hdrs_base "*.h" )
FILE(GLOB srcs_base "*.c*")

FILE(GLOB hdrs ${hdrs_base}  )
FILE(GLOB srcs  ${srcs_base} )


ADD_LIBRARY(${PROJECT_NAME} ${srcs} ${hdrs})
INCLUDE_DIRECTORIES(${CMAKE_CURRENT_BINARY_DIR} ) 

SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES 				# create *nix style library versions + symbolic links
        DEFINE_SYMBOL DBOW_DSO_EXPORTS
	VERSION ${PROJECT_VERSION}
	SOVERSION ${PROJECT_SOVERSION}
	CLEAN_DIRECT_OUTPUT 1 					# allow creating static and shared libs without conflicts
	OUTPUT_NAME "${PROJECT_NAME}${PROJECT_DLLVERSION}" 	# avoid conflicts between library and binary target names
)

TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${REQUIRED_LIBRARIES} )

#INSTALL(TARGETS ${PROJECT_NAME}
#	RUNTIME DESTINATION bin COMPONENT main			# Install the dll file in bin directory
#	LIBRARY DESTINATION ${LIB_INSTALL_DIR} PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE COMPONENT main
#        )			# Install the dll.a file in lib directory



#INSTALL(FILES ${hdrs_base}
#        DESTINATION include/${PROJECT_NAME}
#        COMPONENT main)

修改完成后,我们打开之前下载好的windows版CMake,选择好源码的地址及生成地址(此处建议在文件目录下简历build文件夹用来保存编译好的文件),如下图所示:

DBoW3在windows平台下的配置(win7 + vs2017)_第1张图片

分别点击左下角Configure 和 Generate,即可在刚刚的build文件夹下生成一个 Project.sln 文件,使用vs打开该工程。

由于DBoW3库对OpenCV有依赖,因此,我们可以参考其他vs下配置OpenCV的方法对刚刚的工程进行配置,此处注意,我们编译好DBoW库的是32位的,因此需要配置x86的OpenCV,好像现在下载的OpenCV都不提供x86的lib了,因此可以参考以下博客编译x86版本的OpenCV:

https://blog.csdn.net/sinat_27953939/article/details/68948313

通过以上配置好后,我们点击生成方案,即可在\build\Release文件夹下得到Project.lib文件

此后需要使用该库的工程中,在工程属性中进行配置 配置属性 -> VC++目录:

DBoW3在windows平台下的配置(win7 + vs2017)_第2张图片

包含目录下添加 我们的源码地址 DBow3-master\DBow3-master\src,库目录中添加我们生成的lib文件的地址 \DBow3-master\DBow3-master\build\Release即可

如下图 配置属性 -> 链接器 -> 输入下的附加依赖项中我们写入Project.lib即可

DBoW3在windows平台下的配置(win7 + vs2017)_第3张图片

 

至此,可以添加位于 \DBow3-master\DBow3-master\utils 下的 demo_general.cpp 文件至工程内,测试我们的安装是否成功~

你可能感兴趣的:(DBoW3在windows平台下的配置(win7 + vs2017))