高翔视觉slam第五讲:opencv版本冲突情况安装3.2+测试代码imageBasics

一、安装opencv3.2.0

安装过程参考文章Opencv3安装踩坑(SLAM十四讲)针对个人安装过程中报错总结如下:
在与opencv2共存的条件下,重新安装opencv3
首先检查已有的opencv版本:
pkg-config opencv --modversion
如果是2版本,则需要安装3版本
1.安装依赖

sudo apt-get install build-essential libgtk2.0-dev libvtk6-dev libjpeg-dev libtiff5-dev libjasper-dev libopenexr-dev libtbb-dev

此时与书上不同的是我装的新版本libvtk6-dev、libtiff5-dev

报错无法定位软件包libjasper-dev的解决办法

sudo add-apt-repository "deb http://security.ubuntu.com/ubuntu xenial-security main"
sudo apt update
sudo apt upgrade
sudo apt install libjasper1 libjasper-dev

其中libjasper1是libjasper-dev的依赖包
2.下载opecv包,并提取到某位置
下载路径:https://codeload.github.com/opencv/opencv/zip/3.2.0
然后进入解压后的文件夹,在终端打开
接下来在命令行输入:

mkdir build
cd build
cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local/opencv3 ..
make 
sudo make install

值得注意的是,cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local/opencv3 …
这里一定要指定安装路径,按这个指令输入!

注意,安装过程中可能会出现一个包ippicv下载过慢,则中断安装后,自己点链接下载:
ippicv下载链接

然后将下载下来的ippicv_linux_20151201.tgz
放入opencv3下面的:
3rdparty/ippicv/downloads/linux-808b791a6eac9ed78d32a7666804320e里即可。
然后重新继续安装

最后opencv3就被完整地安装在usr/local下面的个opencv3文件夹

中间若报错: fatal error: stdlib.h: 没有那个文件或目录
则cmake预编译修改为:

cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local/opencv3 -D ENABLE_PRECOMPILED_HEADERS=OFF ..

主要是加了一个参数:-D ENABLE_PRECOMPILED_HEADERS=OFF

二、查看是否安装成功并测试

1.可以查看版本

pkg-config opencv --modversion

2.在CMakeList.txt中编辑如下代码:
要注意的有
(1)C++11支持
(2)set(OpenCV_DIR “usr/local/opencv3/share/OpenCV”) 设置寻找路径

set( CMAKE_CXX_FLAGS "-std=c++11")

cmake_minimum_required( VERSION 2.8 )
project( imageBasics )

set(OpenCV_DIR "usr/local/opencv3/share/OpenCV")

# 寻找OpenCV库
find_package( OpenCV REQUIRED )
# 添加头文件
include_directories( ${OpenCV_INCLUDE_DIRS} )
# 可执行程序
add_executable( imageBasics imageBasics.cpp )
# 链接OpenCV库
target_link_libraries( imageBasics ${OpenCV_LIBS} )

3.测试代码imageBasics.cpp:
在ch5下打开终端

mkdir build
cd build
cmake ..
make

在build内的imageBasics文件夹终端内输入:

./imageBasics /home/zxh/Code/slambook2/ch5/imageBasics/ubuntu.png

后面是自己图片的路径

报错:Gtk-Message: 16:09:54.200: Failed to load module "canberra-gtk-module"解决方法

sudo apt-get install libcanberra-gtk-module

输出结果如下:
在这里插入图片描述
在这里插入图片描述
4.测试图像去畸变代码:

在CMakeLists中添加两行

# 可执行程序
add_executable(undistortImage undistortImage.cpp)
# 链接OpenCV库
target_link_libraries(undistortImage ${OpenCV_LIBS})

运行:

./undistortImage /home/zxh/Code/slambook2/ch5/imageBasics/distorted.png

代码运行报错
OpenCV Error: Assertion failed (size.width>0 && size.height>0) in imshow, file /home/zxh/下载/opencv-3.2.0/modules/highgui/src/window.cpp, line 304
terminate called after throwing an instance of ‘cv::Exception’
what(): /home/zxh/下载/opencv-3.2.0/modules/highgui/src/window.cpp:304: error: (-215) size.width>0 && size.height>0 in function imshow
解决方案:

图片和undistortImage 不再同一文件夹。复制到build中即可。
在这里插入图片描述./undistortImage /home/zxh/Code/slambook2/ch5/imageBasics/build/undistortImage
5.测试计算视差图和点云stereoVision.cpp

将CMakeLists更改为

find_package(Pangolin REQUIRED)
 
find_package(OpenCV 3.0 REQUIRED)      #由于好几个版本所以这里指定个高版本的
include_directories(${OpenCV_INCLUDE_DIRS})  
#添加Eigen头文件
include_directories("/usr/include/eigen3")   #根据你的安装路径来选择
set(CMAKE_CXX_FLAGS "-std=c++11")
 
add_executable(stereoVision stereoVision.cpp)
target_link_libraries(stereoVision ${OpenCV_LIBS} ${Pangolin_LIBRARIES})

编译后运行

./stereoVision

结果如下:

视差图点云

  • 6
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
高翔视觉SLAM(Simultaneous Localization and Mapping)十四是一本关于视觉SLAM算法和实践的教材,其中包含了完整的代码实现。在这本教材中,作者提供了一个已经下载好的文件夹,里面包含了完整的代码文件,可以避免因版本不同而导致的编译错误。 如果你想查看具体的代码实现,你可以在github上找到该教材的代码仓库,其中包含了主要的代码文件。 此外,你还可以在Bilibili网站上找到高翔视觉SLAM十四的视频教程,通过观看视频来更好地理解和学习SLAM算法和实践。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [高翔视觉slam十四有完整库的代码文件](https://download.csdn.net/download/weixin_51938716/86566040)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [SLAM十四 高翔](https://blog.csdn.net/shike951128/article/details/124921532)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值