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

目录

  • 一、安装OpenCV 3.2.0
  • 二、测试运行例程代码
    • 2.1 配置CMakeLists.txt
    • 2.2 测试例程代码
      • 2.2.1 测试代码imageBasics.cpp:
    • 2.3 双目视觉例程
      • 2.3.1 CMakeLists文件配置
    • 2.4 RGB-D例程测试

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

一、安装OpenCV 3.2.0

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

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

~查看OpenCV版本:

pkg-config opencv --modversion

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

sudo find / -iname "*opencv*"

不区分大小写,会显示所有的opencv文件的位置,如下图所示
视觉SLAM十四讲-第五讲-OpenCV的安装和使用(基于ROS-melodic安装后)_第1张图片

可知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

如图所示:
视觉SLAM十四讲-第五讲-OpenCV的安装和使用(基于ROS-melodic安装后)_第2张图片
然后再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
视觉SLAM十四讲-第五讲-OpenCV的安装和使用(基于ROS-melodic安装后)_第3张图片
make后
视觉SLAM十四讲-第五讲-OpenCV的安装和使用(基于ROS-melodic安装后)_第4张图片
分析应该是没有找到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文件如下:
视觉SLAM十四讲-第五讲-OpenCV的安装和使用(基于ROS-melodic安装后)_第5张图片
进行编译:

mkdir build && cd build
cmake ..
make

发现出错误了:
视觉SLAM十四讲-第五讲-OpenCV的安装和使用(基于ROS-melodic安装后)_第6张图片
修改配置文件
视觉SLAM十四讲-第五讲-OpenCV的安装和使用(基于ROS-melodic安装后)_第7张图片
视觉SLAM十四讲-第五讲-OpenCV的安装和使用(基于ROS-melodic安装后)_第8张图片
分析发现是缺少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) #新加的

成功编译,如下图所示:
视觉SLAM十四讲-第五讲-OpenCV的安装和使用(基于ROS-melodic安装后)_第9张图片
完活!!!

你可能感兴趣的:(视觉SLAM学习,opencv,计算机视觉)