ubuntu14.04+opencv2.4.x 的PTAM配置
来源:互联网 发布:淘宝上磁疗贴商品标题 编辑:程序博客网 时间:2024/05/29 14:02
PTAM 是visualSLAM的一种算法,不同于SLAM的实现,它将摄像机跟踪和地图构建分离,仅使用初始地图构建及借用bundle的实现来实现每增添一个新的场景,便实时计算摄像机的位置。这一算法,为AR领域带来的革新,使AR真正进入虚拟与真实交互的新篇章。
接下来,我将结合自己的实践,为大家介绍如何在Linux下安装PTAM。
Opencv版的PTAM源码可见:
https://github.com/BeLioN-github/PTAM
PTAM源码下载下来后,可以再根目录下看到PTAM的源码文件,确认有VideoSource_Linux_Opencv.cc,, Makefile文件里有VideoSource_Linux_Opencv.O等文件。
在根目录下,我们还可以看到有一个 3rdparty.old的文件夹,这个文件夹里有TooN, libcvd,gvars3等PTAM的依赖库。
然而,这些库都太老了,以至于笔者怎么配置都配不好。
只好,从git上讲这三个依赖库分别下载下来(git上的源码还是很新的),分别进行编译。
下面,具体介绍安装过程:
1 安装 build工具
sudo apt-get updatesudo 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-22-dev libv4l-dev
5 视频IO, 编解码和 视频显示库sudo apt-get install libavcodec-dev libavformat-dev libavutil-dev libpostproc-dev libswscale-dev libavdevice-dev libsdl-devsudo apt-get install libgtk2.0-dev libgstreamer0.10-dev libgstreamer-plugins-base0.10-dev
6 OpenGLsudo apt-get install mesa-common-dev libgl1-mesa-dev libglu1-mesa-dev freeglut3-de
之后,安装PTAM的依赖库
TooN库一定要先安装
创建一个目录:
sudo mkdir PTAM-work
cd PTAM-work
TooN:
sudo git clone git://github.com/edrosten/TooN.git
cd TooN
sudo ./configure && make && sudo make install
cd ../
libcvd:
sudo git clone git://github.com/edrosten/libcvd.git
cd libcvd
sudo ./configure --without-ffmpeg --without-v4lbuffer --without-dc1394v1 --without-dc1394v2
make
sudo make install
cd ../
Gvars3:
sudo git clone git://github.com/edrosten/gvars.git
cd gvars
sudo ./configure --disable-widgets
make
sudo make install
cd ../
最后 是的安装后的libs生效
sudo ldconfig
Opencv的安装
sudo mkdir Opencv
cd Opencv
sudo apt-get update
1 下载跟新build环境
sudo
apt-get
install
build-essential libgtk2.0-dev libjpeg-dev libtiff4-dev libjasper-dev libopenexr-dev cmake python-dev python-numpy python-tk libtbb-dev libeigen3-dev yasm libfaac-dev libopencore-amrnb-dev libopencore-amrwb-dev libtheora-dev libvorbis-dev libxvidcore-dev libx264-dev libqt4-dev libqt4-opengl-dev sphinx-common texlive-latex-extra libv4l-dev libdc1394-22-dev libavcodec-dev libavformat-dev libswscale-dev default-jdk ant libvtk5-qt4-dev
2 获取opencv源码
sudo wget http://sourceforge.net/projects/opencvlibrary/files/opencv-unix/2.4.9/opencv-2.4.9.zipunzip opencv-2.4.9.zipcd opencv-2.4.9
3 配置安装
sudo mkdir build
cd build
确认 ffmpeg v4l 都支持cmake -D WITH_TBB=ON -D BUILD_NEW_PYTHON_SUPPORT=ON -D WITH_V4L=ON -D INSTALL_C_EXAMPLES=ON -D INSTALL_PYTHON_EXAMPLES=ON -D BUILD_EXAMPLES=ON -D WITH_QT=ON -D WITH_OPENGL=ON -D WITH_VTK=ON ..
进入PTAM-work目录
将之前提到的, git 上下载的PTAM-opencv源码放在这个下面
进入到根目录下
cp Build/Linux/* .
这一步是将Linux下的文件copy到根目录下,一起编译
最后确认Tracker.cc是否有 #include<unistd.h>, 如果没有加上
最后 直接make即可
效果图:
左一, 是运行CamraCalibrator程序,标定摄像机的样例图。 右边两个是运行PTAM程序的效果t
参考:
http://www.samontab.com/web/2014/06/installing-opencv-2-4-9-in-ubuntu-14-04-lts/
http://hustcalm.me/blog/2013/09/27/ptam-compilation-on-linux-howto/
ARVR技术交流群:129340649
欢迎加入!
- ubuntu14.04+opencv2.4.x 的PTAM配置
- ubuntu14.04编译PTAM
- ubuntu14.04配置opencv2.4.10
- ubuntu14.04 + opencv2.4.9配置
- Ubuntu14.04配置opencv2.4.11
- Ubuntu14.04下Opencv2.4.9的安装及配置使用
- Ubuntu14.04环境下opencv2.4.9的配置
- Ubuntu14.04 + opencv2.4.11 + python环境配置
- Ubuntu14.04安装配置opencv2.4.11
- Ubuntu14.04配置opencv2.4.11开发环境
- ubuntu14.04 + opencv2.4.13 + python2.7 配置
- Ubuntu14配置OpenCV2.4.11
- ubuntu14.04下的caffe环境配置(ubuntu14.04+Opencv2.4.9+cuda7.0)
- Linux下OpenCV2.4.x的安装与配置
- Ubuntu14.04+Opencv2.4.10
- Ubuntu14.04下运行PTAM(Parallel Tracking And Mapping)
- linux(ubuntu14.04)+GPU+cuda6.5+caffe+openCV2.4.9+matlab2014a+python的新手配置
- linux(ubuntu14.04)+GPU+cuda6.5+caffe+openCV2.4.9+matlab2014a+python的新手配置
- android 界面布局(大概)
- IT消费化泛滥 拯救移动设备浪潮湮没的CIO
- HDU 5089 Assignment(rmq+二分 或 单调队列)
- 记录一次 hash分区与 分区索引的测试
- createWithSpriteFrameName nullptr
- ubuntu14.04+opencv2.4.x 的PTAM配置
- 在MyEclipse中apatana插件的安装
- 广东移动:各地主城区4G网络提速至220Mbps---OFweek通信网讯
- spring使用多个PropertyPlaceholderConfigurer的配置
- 设计一个好的游戏世界观需要哪些必备要素?
- poj 2421 Constructing Roads(kruskal)(基础)
- redis数据丢失及解决
- 内部类和匿名内部类
- Linux中软链接与硬链接