sudo apt-get install libboost-dev libboost-doc
sudo apt-get install liblapack-dev
sudo apt-get install libncurses5-dev
sudo apt-get install libpng-dev
sudo apt-get install libtiff-dev
sudo apt-get install libdc1394-22-dev
sudo apt-get install mesa-common-dev
sudo apt-get install libgl1-mesa-dev
sudo apt-get install libglu1-mesa-dev
sudo apt-get install freeglut3-dev
sudo apt-get install freeglut3-devsudo apt-get install libblas-devsudo apt-get install liblapacke-dev
安装完后,开始正式按顺序编译TooN,libcvd,gvars3,lib3ds。
三个文件夹分别放在/home/usrName/ptamTool/下
./configure ; make ;sudo make install
1、TooN
进入TooN目录,
依次 ./configure ; make ;sudo make install。就可以了
2、libcvd
先对该目录下的个别文件进行处理:
a、libcvd/cvd/image.h 内添加 #include <stddef.h> ,防止不能识别 ptrdiff_t 类型(该类型位于stdde.h头文件下)。
b、libcvd/cvd_src/convolutin.cc 内添加 #include <cstdio> 。
c、编辑 libcvd/cvd_src/Linux/v4l2buffer.cc ,
将 #if CVD_KERNEL_MAJOR == 2 && CVD_KERNEL_MINOR == 4
#define USE_24
#define K24(X) X
#define K26(X)
#elif CVD_KERNEL_MAJOR == 2 && CVD_KERNEL_MINOR == 6
#define K26(X) X
#define K24(X)
#else
#error "Can't do v4l2 for this kernel version"
#endif
替换为
#define K26(X) X
#define K24(X)
d、编辑 libcvd/cvd/Linux/v4l1frame.h
将 #ifdef CVD_INTERNAL_HAVE_STRANGE_V4L2
#include <videodevx/videodev.h>
#else
#include <linux/videodev.h>
#endif
替换为 #include <linux/videodev.h>,
并且在 /usr/include/linux内创建一个 videodev.h文件,
videodev.h文件内容为:
#include "/usr/include/libv4l1-videodev.h
#include "/usr/include/linux/videodev2.h
e、编辑 ./configure 操作后下的 libcvd/cvd/config.h
找到 CVD_KERNEL_MAJOR ,CVD_KERNEL_MINOR
改为 #define CVD_KERNEL_MAJOR =2 ;#define CVD_KERNEL_MINOR=6 。
f、编辑libcvd/Makefile 文件
在 CVD_OBJS 下添加 cvd_src/Linux/v4lbuffer.o \ cvd_src/Linux/videosource_v4lbuffer.o \ 记得按文本内的形式添加 " \ “.
g、如果是在ubuntu 64位使用 > gcc 4.5,会报 int32_t未定义错误,则需要在错误文件上加 #include <stdint.h>
完成了上述后,就可以按顺序
./configure --without-ffmpeg --without-mmx --without-v4l1buffer --with-v4l2 或者 ./configure --without-ffmpeg应该也可以。
后 make ,最后 sudo make install。
3、gvars3
先修改 gvars3/seriallize.h文件,添加 #include <cstdio>
而后进入目录按顺序:
./configure --disable-widgets ;
make ;
sudo make install
4、lib3ds
进入目录后
./configure ;
make ;
sudo make install
执行ldconfig ,如果没执行通过也无所谓。
上述完成了相应包的安装。上述包安装后,头文件啥的都是放在/usr/local/include内,库文件都在/usr/local/lib内。
下面正式PTAM / PTAMM 编译,两个的过程是一样的。
两者的编译的话,先将文件目录下 PTAM/Build/Linux 所有文件拷到 PTAM目录下(文件目录下 PTAMM/Build/Linux 所有文件拷到 PTAMM目录下),也就是与其他.h .cc文件同目录。
然后修改 Makefile 文件
a、在 LINKFLAGS 后面添加 :-lGLU -lGL -lblas -llapack
b、我是USB摄像头,所以修改 VIDEOSOURCE=VideoSource_Linux_V4L.o 。
保存后,make 一下,就可以了。
执行时,先执行 CameraCalibrator 进行相机参数调整。
如果出现 V4LBuffer: "V4L2: VIDIOC_STREAMON" ioctl failed on /dev/video0: Invalid argument ,把USB拔出后,再插入。再执行CameraCalibrator试试。
如果要验证USB摄像头可否用,在 ubuntu软件中心安装cheese,启动后测试下摄像头可否工作。
http://blog.youkuaiyun.com/xiaowang629/article/details/40078097