视觉SLAM十四讲-第五讲-OpenCV的安装和使用(基于ROS-melodic安装后)

tips:编译文件后,可执行文件和被读取的文件最好在同一文件夹内,否则执行时可能出错,尤其是有读取文件的操作时。相对路径的相对是针对编译生成的可执行文件

一、安装OpenCV 3.2.0

安装ROS时,OpenCV也被自动地安装了。我ubuntu版本是18.04,故安装的ROS版本为melodic,安装ROS后,ubuntu系统自动地安装了OpenCV 3.2.0。

若之前没有安装ROS或者OpenCV,则参考文章高翔视觉slam第五讲:opencv版本冲突情况安装3.2+测试代码imageBasicsOpencv3安装踩坑(SLAM十四讲)进行安装

~查看OpenCV版本:

pkg-config opencv --modversion

~查看自己linux中OpenCV的安装位置:

sudo find / -iname "*opencv*"

不区分大小写,会显示所有的opencv文件的位置,如下图所示
在这里插入图片描述

可知opencv的安装位置:/usr/include/opencv

二、测试运行例程代码

2.1 配置CMakeLists.txt

cmake_minimum_required( VERSION 2.8 )
#添加C++ 11标准支持
set( CMAKE_CXX_FLAGS "-std=c++11")
project(imageBasics)
#寻找OpenCV库,注意字母大小写,否则会编译出错,出现找不到库的错误提示
find_package( OpenCV REQUIRED)

add_executable(imageBasics imageBasics.cpp)
# 链接OpenCV库
target_link_libraries(imageBasics ${OpenCV_LIBS})

add_executable(undistortImage undistortImage.cpp)
# 链接OpenCV库
target_link_libraries(undistortImage ${OpenCV_LIBS})

2.2 测试例程代码

2.2.1 测试代码imageBasics.cpp:

在ch5/imageBasics目录下打开终端

mkdir build
cd build
cmake .. #..表示上一目录,因为cmakelists文件在上一目录
make

如图所示:
在这里插入图片描述
然后再build目录下,文件使用绝对路径

./imageBasics /home/zs/slambook2-master/ch5/imageBasics/ubuntu.png

如图所示:
在这里插入图片描述

图像去畸变的程序也可以正常运行 就不展示了。

2.3 双目视觉例程

2.3.1 CMakeLists文件配置

配套的代码如图所示:

find_package(Pangolin REQUIRED)
add_executable(stereoVision stereoVision.cpp)
target_link_libraries(stereoVision ${OpenCV_LIBS} ${Pangolin_LIBRARIES})

编译后,结果出错,错在make这一步,有如下报错:
cmake . .后,有warning,注意分析,是缺少东西 看序号1和2
在这里插入图片描述
make后
在这里插入图片描述
分析应该是没有找到OpenCV库

故修改配置文件如下:

cmake_minimum_required( VERSION 2.8 ) #新加
find_package(Pangolin REQUIRED)
find_package( OpenCV REQUIRED) #新加查找OpenCV库
set( CMAKE_CXX_FLAGS "-std=c++11") #新加 C++11标准
add_executable(stereoVision stereoVision.cpp)
target_link_libraries(stereoVision ${OpenCV_LIBS} ${Pangolin_LIBRARIES})

再次编译,成功!!

2.4 RGB-D例程测试

原本的cmakelist文件如下:
在这里插入图片描述
进行编译:

mkdir build && cd build
cmake ..
make

发现出错误了:
在这里插入图片描述
修改配置文件
在这里插入图片描述
在这里插入图片描述
分析发现是缺少OpenCV库,因为很多未定义的cv的引用

修改后的cmakelist文件如下:

cmake_minimum_required( VERSION 2.8 )
set( CMAKE_CXX_FLAGS "-std=c++11")


find_package( OpenCV REQUIRED) #新加查找OpenCV库
find_package(Pangolin REQUIRED)
find_package(Sophus REQUIRED) #新加的

include_directories(${Sophus_INCLUDE_DIRS})



add_executable(joinMap joinMap.cpp)
target_link_libraries(joinMap ${OpenCV_LIBS} ${Pangolin_LIBRARIES})
target_link_libraries(joinMap Sophus::Sophus) #新加的

成功编译,如下图所示:
在这里插入图片描述
完活!!!

  • 9
    点赞
  • 50
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值