高翔视觉slam第五讲:opencv版本冲突情况安装3.2+测试代码imageBasics_高翔opencv依赖项-程序员宅基地

技术标签: 自动驾驶  opencv  视觉slam  

一、安装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

结果如下:

视差图点云

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/Evanzxh/article/details/119387056

智能推荐

(Java毕业设计)招聘信息管理系统(基于java+springboot)附源码_java人力资源管理系统招聘管理-程序员宅基地

文章浏览阅读1.1k次,点赞2次,收藏17次。在Internet高速发展的今天,我们生活的各个领域都涉及到计算机的应用,其中包括招聘信息管理系统的网络应用,在外国招聘信息管理系统已经是很普遍的方式,不过国内的线上管理系统可能还处于起步阶段。招聘信息管理系统具有招聘信息管理功能的选择。_java人力资源管理系统招聘管理

冯诺依曼、哈佛、RISC、CISC_冯诺依曼曼指令和数据区分-程序员宅基地

文章浏览阅读1.3w次,点赞5次,收藏20次。几个基础材料(源:http://jwc.seu.edu.cn/zq/signal/new/importent/zhang5_6/feng.htmhttp://jwc.seu.edu.cn/zq/signal/new/importent/zhang5_6/harvard.htmhttp://dingjun.net/dingjun/html/14/84FB43402106C575.html_冯诺依曼曼指令和数据区分

Netty——深入解析心跳检测机制_netty 服务端心跳检测-程序员宅基地

文章浏览阅读428次。客户端定时每X秒(推荐小于60秒)向服务端发送特定数据(任意数据都可),服务端设定为X秒没有收到客户端心跳则认为客户端掉线,并关闭连接触发onClose回调。当需要服务端定时给客户端发送心跳数据时, $gateway->pingData设置为服务端要发送的心跳请求数据,心跳数据是任意的,只要客户端能识别即可。当设置为服务端主动发送心跳时,如果客户端最近有发来数据,那么证明客户端存活,服务端会省略一个心跳,下个心跳大约1.5*$gateway->pingInterval秒后发送。心跳检测时间间隔 单位:秒。_netty 服务端心跳检测

linux内核SPI总线驱动分析(一)_linux spi驱动总线分析-程序员宅基地

文章浏览阅读535次。下面有两个大的模块:一个是SPI总线驱动的分析 (研究了具体实现的过程)另一个是SPI总线驱动的编写(不用研究具体的实现过程)SPI总线驱动分析 1 SPI概述 SPI是英语Serial Peripheral interface的缩写,顾名思义就是串行外围设备接口,是Motorola首先在其MC68HCXX系列处理器上定义的。SPI接口主要应_linux spi驱动总线分析

Nginx,nginx-rtmp-module-master搭建直播平台-程序员宅基地

文章浏览阅读511次。Nginx,nginx-rtmp-module-master搭建直播平台_nginx-rtmp-module-master

**The sip module implements API v11.0 to v11.2 but the PyQt5.QtCore module requires API v11.3**_the pyqt5.qtcore module failed to register with th-程序员宅基地

文章浏览阅读3.6k次。*The sip module implements API v11.0 to v11.2 but the PyQt5.QtCore module requires API v11.3*情况一 SIP版本不匹配我在使用PyQt5时遇到了这个问题:“sip模块实现了API v11.0到v11.2,但PyQt5.QtWidgets模块需要API v11.3”pip列表sip 4.18,但是使..._the pyqt5.qtcore module failed to register with the sip module

随便推点

springboot2.x The character [_] is never valid in a domain name_springboot the character [_] is never valid in a d-程序员宅基地

文章浏览阅读1k次。访问springcloud工程, springboot版本为2.1.15 ,使用域名访问接口报400但是直接用ip不报错。发现是集成的tomcat版本不支持域名下划线。大约是8.5.31以后的版本不支持带下划线的域名,但是也没办法降低版本了,会有很多冲突。先搁置。..._springboot the character [_] is never valid in a domain name.

QEMU 运行 RISC-V 64 位 Linux_qemu启动riscv环境-程序员宅基地

文章浏览阅读420次。QEMU 运行 RISC-V 64 位 Linux_qemu启动riscv环境

一年对于程序员来说有多长?_程序员 一年多少秒-程序员宅基地

文章浏览阅读4.3k次。聊这个话题,我表示又蛋疼了!你想看么?还没写过这么有争议的话题,有点小小的不安!一年有多长?让我来掐指算一算:1年=365天(今年是366天)=多少小时呢?前方高能,等我去写个程序算一下!还用写程序吗?早有人写好了!有多少分有多少秒,又有多少毫秒呢?我们只需要选择一下单位就好了,结果是:1年(yr)=31536000000毫秒(ms)为什么聊这个话题?蛋当然不可能说疼就疼了!水是有源的,树是有根的_程序员 一年多少秒

idea使用码云管理项目教程_idea 使用码云维护项目-程序员宅基地

文章浏览阅读745次。第一步 : 下载git 进入git官网 https://git-scm.com/download/win 下载git软件. 我这里演示安装Git-2.16.1.4-64-bit.exe 1 . 运行 Git-2.16.1.4-64-bit.exe 点击Next 2. 选择安装目录 点击Next 3. 第二步 : 安装码云插件第三步 : 配..._idea 使用码云维护项目

js调用百度地图API创建地图,搜索位置-程序员宅基地

文章浏览阅读186次。实现代码:<!DOCTYPE html><html><head> <meta charset="UTF-8"> <meta http-equiv="Cache-Control" content="no-store" /> <meta http-equi_百度地图js api地址搜索

Excel VSTO开发1-VSTO简介_office开发版本号与vsto-程序员宅基地

文章浏览阅读986次。VSTO(Visual Studio Tools for Office)是微软开发的一种用于创建Microsoft Office应用程序的工具集,它可以让开发者在Microsoft Office应用程序中集成自己的.NET应用程序。VSTO还提供了一些特殊的工具和库,使得开发人员可以更方便地管理Microsoft Office应用程序的生命周期、访问Microsoft Office应用程序的API和对象模型、处理Microsoft Office应用程序的事件和异常等。Office版本:2016 32位。_office开发版本号与vsto