当前位置:   article > 正文

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

ros安装opencv

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
  • 1

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

sudo find / -iname "*opencv*"
  • 1

不区分大小写,会显示所有的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})

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

2.2 测试例程代码

2.2.1 测试代码imageBasics.cpp:

在ch5/imageBasics目录下打开终端

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

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

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

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

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

2.3 双目视觉例程

2.3.1 CMakeLists文件配置

配套的代码如图所示:

find_package(Pangolin REQUIRED)
add_executable(stereoVision stereoVision.cpp)
target_link_libraries(stereoVision ${OpenCV_LIBS} ${Pangolin_LIBRARIES})
  • 1
  • 2
  • 3

编译后,结果出错,错在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})
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

再次编译,成功!!

2.4 RGB-D例程测试

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

mkdir build && cd build
cmake ..
make
  • 1
  • 2
  • 3

发现出错误了:
在这里插入图片描述
修改配置文件
在这里插入图片描述
在这里插入图片描述
分析发现是缺少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) #新加的

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16

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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Cpp五条/article/detail/599221
推荐阅读
相关标签
  

闽ICP备14008679号