ubuntu20.04下安装Kdevelop并实现图像ORB特征匹配
安装Kdevelop
linux下的支持C++开发的IDE有很多种,例如:Eclipse、 Qt Creator、Code::Blocks、Clion等等,《视觉SLAM十四讲》中使用的IDE是Kdevelop,Kdevelop支持cmake工程、可以方便查看各个文件及目录、具有断点调试功能等。
- 安装cmake
终端输入:
sudo apt-get install cmake
- 安装kdevelop
sudo apt-get install kdevelop
看到下图图标,就算是安装成功了:
图像ORB匹配
CMakelists.txt文件
CMakelists.txt文件用于告诉cmake我们要对这个目录下的文件做什么事情。CMakelists.txt文件的内容需要遵守cmake的语法。例如:(这是一个最基本的工程:指定一个工程名和一个可执行程序)
#声明要求的cmake最低版本
cmake_minimum_required(VERSION 3.1)
#声明一个cmake工程
project(orb_test)
#添加一个可执行程序
#语法:add_executable(程序名 源代码文件)
add_executable( feature_extraction main.cpp src/feature_extraction.cpp )
使用kdevelop实现orb特征匹配
- 新建工程
Project->New From Template
选择 standard->Terminal->cmake c++
点击完成。
Build type要选择Debug
- 开始编写CMmakelists.txt文件
在建好工程之后,CMmakelists.txt文件默认的最低版本是3.0,我们需要把他更改为3.1,更改之前需要查看系统安装的cmake版本cmake -version
,看是否符合。ORB运行需要3以上的版本,不符合要求需要更新cmake版本。
cmake_minimum_required(VERSION 3.0)
若依据默认版本3.0会报警告:
CMake Warning (dev) at /usr/local/share/OpenCV/OpenCVModules.cmake:36 (if):
Policy CMP0054 is not set: Only interpret if() arguments as variables or
keywords when unquoted. Run “cmake --help-policy CMP0054” for policy
details. Use the cmake_policy command to set the policy and suppress this
warning.
是因为3.0前cmake is old,需要更换新的可以添加以下代码试试,我的不可以直接换成了3.1就不再报错
set(CMAKE_POLICY_DEFAULT_CMP0054 NEW)
以下是CMmakelists.txt文件内容:
cmake_minimum_required(VERSION 3.1)
project(orb_test)
#set( CMAKE_BUILD_TYPE "Release" )
set( CMAKE_CXX_FLAGS "-std=c++11 -O3" )
set (CMAKE_BUILD_TYPE "Debug")
#cmake_policy(SET CMP0054 NEW)
set(CMAKE_POLICY_DEFAULT_CMP0054 NEW)
# 添加cmake模块以使用g2o
#list( APPEND CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake_modules )
find_package( OpenCV 3.4.3 REQUIRED )
#find_package( G2O REQUIRED )
<