windows下PTAM的编译
前些日子在研究PTAM,以下首先说说PTAM的编译过程,我在XP几WIN7搭配vs2010中均已測试过,都能够执行。
首先下载编译PTAM所必须的库文件。下载地址我会给出
PTAM(PTAM.zip)http://www.robots.ox.ac.uk/~gk/PTAM/
GLEW(glew-1.5.0-win32.zip)http://glew.sourceforge.net/
Lapack
and BLAS (shared-libs.zipとheaders.tar.gz)http://www.fi.muni.cz/~xsvobod2/misc/lapack/
pthreads (pthreads-w32-2-8-0-release.exe)http://sourceware.org/pthreads-win32/
libjpeg
for win32 (jpeg-6b-4.exe)http://gnuwin32.sourceforge.net/packages/jpeg.htm
fltk(fltk-2.0.x-r6305.tar.bz2) http://www.fltk.org/index.php
若是无法在上述网页中找到所须要的安装包。能够在http://download.csdn.net/detail/cgf_909/7175757下载PTAM的源程序,在http://download.csdn.net/detail/cgf_909/7249657下载到GLEW,Lapack
and BLAS。pthreads ,libjpeg
for win32 。fltk这五个库文件。
接下来我们对以上五个库进行配置,配置这五个库是为了编译TooN, libcvd, gvars3这三个库,而这三个库是编译PTAM所必须的库文件
1、将下载下来的GLEW解压后。把bin/glew32.dll放到c盘Windows/system32中。把lib/glew32.lib放到{VC
的根文件夹}vc/Lib中。把include/GL/glew.h放到{VC 根文件夹}/Include/GL中。把include/GL/wglew.h放到{VC
Root}/Include/GL中。
2、加压LAPACK
AND BLAS把blas_win32.dll和lapack_win32.dll放到Windows/system32中。blas_win32.lib和lapack_win32.lib放到{VC
根文件夹}/Lib中。将headers.tar.gz解压。把lapack和blas这两个文件夹放到{VC
根文件夹}/Include/中。这里须要注意一下,在这里Lapack
and BLAS (shared-libs.zipとheaders.tar.gz)http://www.fi.muni.cz/~xsvobod2/misc/lapack/所给出的网址中,下载到的LAPACK和BLAS库文件我配置好后。一直有错误,发现是程序代码生成过程中MD,MT的选择问题,PTAM要在MTD下执行,所以我们选择的依赖库为blas_win32_MT.lib和lapack_win32_MT.lib。推荐在这里下载这个库文件http://download.csdn.net/detail/cgf_909/7175585
3、把pthreads-w32-2-8-0-release.exe解压得到Pre-built.2、pthreads.2、QueueUserAPCEx这三个目录。把Pre-built.2/include下的semaphore.h、sched.h、pthread.h这三个头文件放到{VC
根文件夹}/Include中。将Pre-built.2/lib下的lib文件放到{VC
根文件夹的}/Lib中,在把这个里面的dll文件放到Windows/system32中。
4、执行jpeg-6b-4.exe。把他安装到默认路径。安装完毕后在(C:/Program
Files/GnuWin32/include和C:/Program Files/GnuWin32/lib)
把include文件和lib文件分别复制到vc根文件夹的include和lib中去。
5、将fltk-2.0.x-r6305.tar.bz2演说包解压、然后它作为一个头文件放到{VC
Root}/Include中。
接下来我们须要编译TooN。
libcvd, gvars3这三个库,这三个库的下载地址为http://download.csdn.net/detail/cgf_909/7175721
1、首先是TooN的编译,我们把解压后的TooN作为一个头文件包括到vc根文件夹的include中就可以
2、对libcvd的编译,解压libcvd文件执行其下build/vc2005中的project,执行会错误发生。解决的方法:
把包括在vc根文件夹中include下的TooN头文间中的toon/internal/config.hh打开,其它代码均屏蔽掉仅仅保留#define
TOON_USE_LAPACK 1 这一行,
再次编译libcvd可发现编译通过,生成一lib目录,把lib目录下的lib库放置vc根目录的lib中。然后再把cvd作为一头文件
放到{VC
Root}/Include中。
3、解压gvars3执行build/vc2005中的project。会错误发生。解决的方法:移除该project中GUI_Fltk2.h,和GUI_Fltk2.cc,
然后在gvars3文件夹下创建config.h文件:
#ifndef GVARS3_INCLUDE_CONFIG_H
#define GVARS3_INCLUDE_CONFIG_H
#define GVARS3_HAVE_TOON 1
#endif
又一次编译可通过,生成了一lib目录,把该目录下的lib文件放置{VC Root}/Lib中。
然后把gvars3下的gvars3作为一头文件放置{VC
Root}/Include中
在这些都配置好后,我们就能够来编译PTAM程序了
在PTAM中包括两个部分,一个是相机的校准部分。一个是PTAM的主体部分。
首要要对相机进行校准得到相机的參数才干执行PTAM的主体部分。我们在建立PTAMproject之后。
在project的属性-c/c++-code
generation-runtime library中选择MTD,多线程调试,在project属性-Linker-input-addition Dependencies
增加这些外部依赖项
OpenNI.lib
glew32.lib
libcvdd.lib
gvars3d.lib
opengl.lib
pthreadVC2.lib
lapack_win32_MTd.lib
blas_win32_MTd.lib
然后把SymEigen.h文件里的
ev = makeVector(A_plus_B, -A_plus_B/2 + A_minus_B * sqrt(3)/2, -A_plus_B/2 -
A_minus_B * sqrt(3)/2) - Ones * a/3;
改为
ev = makeVector(A_plus_B, -A_plus_B/2 + A_minus_B * sqrt(3.0)/2.0, -A_plus_B/2 -
A_minus_B * sqrt(3.0)/2.0) - Ones * a/3;
编译project可执行成功。
这里还须要注意一下。PTAM中从相机中读入视频帧的程序是靠我们自己来写的,即针对VideoSource.h这个头文件,我们没有相应的cpp文件对其进行实现,所以我们得依据自己所用的不同摄像头。来对其进行实现。
windows下PTAM的编译的更多相关文章
- 手把手教你在Windows下使用MinGW编译libav(参考libx264的编入)
转自:http://www.th7.cn/Program/cp/201407/242762.shtml 手把手教你在Windows下使用MinGW编译libav libav是在Linux下使用纯c语言 ...
- 【转】Windows下使用VS2008编译OpenCV 2.1 添加Intel TBB和Python支持
Windows下使用VS2008编译OpenCV2.1 添加Intel TBB和Python支持 步骤: 1.仔细阅读OpenCV官网上的InstallGuide:http://opencv.will ...
- 实践详细篇-Windows下使用VS2015编译的Caffe训练mnist数据集
上一篇记录的是学习caffe前的环境准备以及如何创建好自己需要的caffe版本.这一篇记录的是如何使用编译好的caffe做训练mnist数据集,步骤编号延用上一篇 <实践详细篇-Windows下 ...
- windows下用vs2010编译ffmpeg
转载自;http://q1q2q3q4q5q6ln.blog.163.com/blog/static/500794332014666536283/ (注意:请务必先阅读:七,后记补充:) ffmpeg ...
- Windows下从源代码编译Skia
在PPAPI里面画图,能够结合第三方的图形库.比方Cairo.Skia. Google Chrome.Chromium和Android都使用Skia作为画图引擎.我也来试试Skia,先过编译关. fo ...
- Windows 下使用 GNUstep 编译并运行 Objective-C 程序
今晚上开始看<Objective-C 程序设计(第4版)>这本书(OSChina 正在做此书的书评活动,详情请看这里),到现在为止看到第 7 章,于是想动手试试写两简单的程序编译跑跑看. ...
- 在windows下使用vs2013编译和调试mysql源代码
1. 准备工作 1)OS:win10 + VS2013 2)mysql 源码(windows版):mysql-5.6.25.zip 3)perl tool:ActivePerl-5.16.3.1604 ...
- windows下使用cmake编译zlib与libpng libjpeg
win7下使用VS2010编译jpeglib 1.下载源代码下载地址:http://www.ijg.org/files/, 选择最新版本的windows版本压缩包,进行下载. jpeg ...
- Windows下使用Rtools编译R语言包
使用devtools安装github中的R源代码时,经常会出各种错误,索性搜了一下怎么在Windows下直接打包,网上的资料也是参差不齐,以下是自己验证通过的. 一.下载Rtools 下载地址:htt ...
随机推荐
- php和nodejs
整个故事正如好莱坞大片的经典剧情走向:两位昔日好友如今分道扬镳,甚至被迫陷入了你死我活的斗争当中.刚开始的分歧并不严重,无非是一位老友对于另一位伙伴长久以来占据.但又绝口不提的业务领域产生了点兴趣.而 ...
- putty和xshell使用和免密登录
putty和xshell使用和免密登录 XSHELL的设置 事前:我们先去关闭防火墙和selinux 关闭防火墙: ufw disable 再去看看selinux 一.查看SELinux状态命令: ...
- Spark Streaming概念学习系列之SparkStreaming性能调优
SparkStreaming性能调优 合理的并行度 减少批处理所消耗时间的常见方式还有提高并行度.有以下三种方式可以提高并行度: 1.增加接收器数目 有时如果记录太多导致单台机器来不及读入并分发的话, ...
- 使用原生JS实现简单的ajax
Ajax是一种使用javascript内置对象向服务器发送请求/接收响应的技术.它可以再页面已经完全显示出来之后再和服务器进行少量的数据交互,所以可以实现局部内容的刷新. ajax的实现,主要是靠ja ...
- svn SSL 错误:Key usage violation in certificate has been detected
CentOS/RHEL yum 安装的 subversion 是 1.6.11 版本,连VisualSVN服务器时会有"Key usage violation"的错误 将subve ...
- 基于MapReduce的贝叶斯网络算法研究参考文献
原文链接(系列):http://blog.csdn.net/XuanZuoNuo/article/details/10472219 论文: 加速贝叶斯网络:Accelerating Bayesian ...
- Linux crontab 在每月最后一天执行
59 23 * * * if [ `date +%d -d tomorrow` = 01 ]; then; command(/usr/bin/curl -s -o temp.txt http:// ...
- Linux 内核链表 list.h 的使用
Linux 内核链表 list.h 的使用 C 语言本身并不自带集合(Collection)工具,当我们需要把结构体(struct)实例串联起来时,就需要在结构体内声明指向下一实例的指针,构成所谓的& ...
- [codeforce 975C] Valhalla Siege (二分)
Examples input 5 5 1 2 1 2 1 3 10 1 1 1 output 3 5 4 4 3 input 4 4 1 2 3 4 9 1 10 6 output 1 4 4 1 N ...
- CNN实现terecord、数据集、模型训练
AlexNet(Alex Krizhevsky,ILSVRC2012冠军)适合做图像分类.层自左向右.自上向下读取,关联层分为一组,高度.宽度减小,深度增加.深度增加减少网络计算量. 训练模型数据集 ...