ubuntu16.04下笔记本自带摄像头编译运行PTAM
ubuntu16.04下笔记本自带摄像头编译运行PTAM
转载请注明链接:https://i.cnblogs.com/EditPosts.aspx?postid=9014147
个人邮箱:feifanrensheng1@outlook.com
北航飞控一体化技术重点实验室
PTAM是视觉slam的一种开源算法,并做了关于增强现实的应用。代码是完全开源的,可以从github上获取:地址
作者2008年的文章 Parallel tracking and mapping for Small AR workspaces
支持多个系统上编译运行,可以在作者的项目主页上获取一些在其他系统上的安装教程,作者主页:http://www.robots.ox.ac.uk/~gk/
我主要尝试在ubuntu16.04上尝试对ptam进行编译安装。
具体的安装过程
一 依赖库的安装
1 安装 build工具
sudo apt-get update
sudo apt-get install build-essential cmake pkg-config
2 更新C++库
sudo apt-get install libboost-dev libboost-doc
3 安装线性代数的低级库
sudo apt-get install liblapack-dev libblas-dev
4 图像IO 和 摄像机驱动
sudo apt-get install libjpeg-dev libpng-dev libtiff-dev libdc1394--dev libv4l-dev
5 视频IO, 编解码和 视频显示库
sudo apt-get install libavcodec-dev libavformat-dev libavutil-dev libpostproc-dev libswscale-dev libavdevice-dev libsdl-dev
sudo apt-get install libgtk2.-dev libgstreamer0.-dev libgstreamer-plugins-base0.-dev
6 OpenGL
sudo apt-get install mesa-common-dev libgl1-mesa-dev libglu1-mesa-dev freeglut3-de
二 我们要安装ptam的三个第三方库
TooN libcvd Gvars3有依赖关系,所以一定要按照顺序安装,还有就是他们的版本问题也可能造成安装不成功,所以,推荐采用以下的版本搭配,我经过验证是可以编译成功的,在https://github.com/slowlythinking/PTAM 中获得(其中也包含PTAM的源码,但是存在问题);
TooN库一定要先安装
从git上获取这三个库
git clone https://github.com/slowlythinking/PTAM.git
然后把其中的PTAM文件夹删除,里面的文件存在问题,我们要重新编译。
TooN:
cd TooN sudo ./configure && make && sudo make install cd ../
libcvd:
cd libcvd sudo ./configure --without-ffmpeg --without-v4lbuffer --without-dc1394v1 --without-dc1394v2 sudo make sudo make install cd ../
Gvars3:
sudo git clone git://github.com/edrosten/gvars.git cd gvars sudo ./configure --disable-widgets sudo make sudo make install
最后,使安装后的libs生效
cd ../
sudo ldconfig
opencv的安装可以根据网上的教程自行安装。
三 编译PTAM
进入之前的PTAM目录,从github上获取最新的ptam源码
git clone https://github.com/Oxford-PTAM/PTAM-GPL.git ptam
cd ptam
git checkout feature/Linuxmint15
cd Src
make
编译成功会得到CameraCalibrator, PTAM两个可执行文件,CameraCalibrator用于预先对相机进行校正
四 运行PTAM
首先你需要下载一个棋盘格图片,执行相机标定,
进入到上一步的Src目录,执行./CameraCalibrator,根据提示,使用下图右上角的CapFrame取帧,至少取不同角度的4帧以上,取帧结束以后,按下Optimize,计算相机本质矩阵(焦距等相机参数)。包括焦距f,相机中心cx,cy,还有两个畸变系数。
./CameraCalibrator

标定完成后,输出得到一个camera.cfg文件,然后就可以接着执行 ./PTAM
CameraCalibrator运行完毕之后运行PTAM,开始运行时由于需要初始化地图,需要用户选取两帧作为初始化的数据输入,具体操作步骤为按下空格键,程序会计算出这一帧的FAST角点显示在图像上,然后做轻微平移,再次按下空格键,初始化完毕。界面右上方有Draw AR off和View Map on,作用分别是把虚拟物品(此处为四只眼睛)显示到平面上和显示软件所建地图信息。以下是运行截图



更改调用外接摄像头
当然笔记本默认打开的是你的笔记本自带摄像头 /dev/video0
我在电脑上加了一个usb外接摄像头,罗技c270, 地址为/dev/video1
要想打开外接摄像头需要对VideoSource_Linux_V4L.cc文件中的内容进行更改,
string QuickCamFile = GV3::get<string>("VideoSource.V4LDevice", "/dev/video0");
更改为
string QuickCamFile = GV3::get<string>("VideoSource.V4LDevice", "/dev/video1");
这样,当调用程序时打开的就是你的usb外接摄像头。
参考教程:
https://blog.csdn.net/shhu1993/article/details/47783077
https://blog.csdn.net/jinghouxiang/article/details/46998235
http://blog.sina.com.cn/s/blog_7b83134b0102wabk.html
ptam的增强版ptamm下载地址
http://www.robots.ox.ac.uk/~bob/software/ptamm_download.html
ptamm需要多加一个库lib3ds
下载地址:http://www.lib3ds.org
lib3ds的版本为 :lib3ds-20080909.zip.
但是编译报错
明天继续解决
ubuntu16.04下笔记本自带摄像头编译运行PTAM的更多相关文章
- Ubuntu16.04下搭建开发环境及编译tiny4412 Android系统【转】
本文转载自:http://blog.csdn.net/songze_lee/article/details/72808631 版权声明:本文为博主原创文章,未经博主允许不得转载. 1.安装ssh服务器 ...
- Ubuntu16.04下安装MATLAB 2016b!完美运行
目录 1.下载MATLAB 2016b 2.挂载iso 3.安装MATLAB 4.破解 5.快捷键与运行 1.下载MATLAB 2016b 下载matlab 2016b for linux(可以百度搜 ...
- Ubuntu16.04下编译安装OpenCV3.4.0(C++ & python)
Ubuntu16.04下编译安装OpenCV3.4.0(C++ & python) 前提是已经安装了python2,python3 1)安装各种依赖库 sudo apt-get update ...
- Ubuntu16.04下编译OpenCV2.4.13静态库(.a文件)
Ubuntu16.04下编译OpenCV2.4.13静态库(.a文件) https://blog.csdn.net/woainishifu/article/details/79712110 我们在做项 ...
- Ubuntu16.04下编译安装及运行单目ORBSLAM2
官网有源代码和配置教程,地址是 https://github.com/raulmur/ORB_SLAM2 1 安装必要工具 首先,有两个工具是需要提前安装的.即cmake和Git. sudo apt- ...
- 【原创】Octovis在Ubuntu16.04下运行出现core dump的解决方案
本人SLAM研究新手,使用系统为Ubuntu16.04.本文原址:http://www.cnblogs.com/hitlrk/p/6667253.html 在学习SLAM的过程中,使用Octomap进 ...
- Ubuntu16.04下Office替代品Office Online
Ubuntu16.04下Office替代品 Ubuntu16.04下的office Libreoffice 这个是Ubuntu自带的Office,总是存在各种问题,如果用来阅读还是不错的,但是编辑就不 ...
- Ubuntu16.04下添加打印机FujiXerox CP116w
今天要打印一份北马的成绩单, 不想重启机器了, 在Ubuntu下尝试添加打印机, 最后成功了, 记录一下 打印机型号是FujiXerox CP116w, 通过WIFI连接的, 在Ubuntu16.04 ...
- ubuntu16.04下安装artoolkit5
目前对AR技术的常见理解就是CV(Computer Vision)+CG(Computer Graphic).CV的方法很多,简单些比如FREAK+ICP(ARToolKit中的NFT),复杂些就是S ...
随机推荐
- 下列可以用来解析XML的是( )
A.CSS B.DTD C.SAX D.XSL 解答:C java解析xml文件四种方式:SAX DOM JDOM DOM4J
- (转)Hdmi edid 数据解析
Hdmi edid 数据解析 (转自:http://blog.chinaunix.net/uid-20672559-id-3384035.html) 一.EDID数据格式: EDID 1.3 d ...
- mysql 从sql存储文件恢复数据库乱码
场景一: 一台电脑上导出的sql文件到另一台电脑上恢复数据库,汉字全部是乱码,然后可能还有部分数据提示超长. 场景二: 拿到的sql文件不是原始的导出sql文件,只有表结构和表数据,出现的问题和场景一 ...
- python不同package下相互调用
路径如: /path/dir1/a.py /path/dir2/b.py 调用举例如: 在/path/dir2/b.py中调用 a模块 import sys sys.path.append(" ...
- linux(十一)之初始化文件
前面写了很多linux的知识,其实很多都是命令的,所以要去多多的练习才能学的更好,加油为了好工作. 要么现在懒惰,未来讨饭.要么现在努力,未来惬意. 一.初始化文件概述 1.1.概述 系统初始化文件是 ...
- BleedTree动画混合树
通过Unity动画状态机,能帮我们轻松处理转换各个动画片断,达到想要的效果,但是如果仅仅是一个个动画的硬生生的切换,那么看起来就非常突然,而不真实了,在质量要求比较高的游戏中,特别是动作游戏,我们就不 ...
- C语言对文件的操作函数用法详解1
在ANSIC中,对文件的操作分为两种方式,即: 流式文件操作 I/O文件操作 一.流式文件操作 这种方式的文件操作有一个重要的结构FILE,FILE在stdio.h中定义如下: typedef str ...
- Android:控件布局(相对布局)RelativeLayout(转)
相对布局常用属性: 子类控件相对子类控件:值是另外一个控件的id android:layout_above----------位于给定DI控件之上android:layout_below ------ ...
- HTTP 请求过程
如下,我们在浏览器输入一个域名,按回车之后,便向该域名对应的服务器发送了一个请求:服务器接收到这个请求后进行处理和解析,然后返回响应的内容给浏览器,浏览器再对其进行解析然后呈现网页 我们可以通过 Ch ...
- m2014-architecture-imgserver->利用Squid反向代理搭建CDN缓存服务器加快Web访问速度
案例:Web服务器:域名www.abc.com IP:192.168.21.129 电信单线路接入访问用户:电信宽带用户.移动宽带用户出现问题:电信用户打开www.abc.com正常,移动用户打开ww ...