参考:文章链接
环境搭建:已安装Opencv3.4.1 ......
1.3 安装 TooN && libCVD && Gvars3
TooN:与线性代数有关的头文件库。
libCVD:一个与图像处理、视频获取和计算机视觉有关的库。
Gvars3:一个libCVD的子项目。
libCVD是需要TooN库的,所以安装顺序为TooN->libCVD->Gvars3
由于TooN 、libCVD、Gvars3和PTAM源码的版本兼容问题,推荐采用以下的版本搭配:TooN 、libCVD、Gvars3:在https://github.com/slowlythinking/PTAM 中获得(其中也包含PTAM的源码,但是存在问题);
将上述下载所得文件夹中的PTAM删除替换为下述版本:
PTAM:在其官网http://www.robots.ox.ac.uk/~gk/PTAM/download.html中获得。
First. 安装TooN
make clean
./configure
sudo make install
Second. 安装libcvd
make clean
export CXXFLAGS=-D_REENTRANT
./configure --without-ffmpeg
make
sudo make install
Third. 安装gvars3
make clean
./configure --disable-widgets
make
sudo make install
Fourth. 运行ldconfig让动态链接库为系统所共享
cd ..
sudo ldconfig
2 安装PTAM
2.1 获取源码
将PTAM/Build/Linux所有文件拷到 PTAM目录下。
附源码链接:http://www.robots.ox.ac.uk/~gk/PTAM/download.html
2.2 更改makefile和Tracker.cc文件
在makefile文件中更改COMPILEFLAGS、LINKFLAGS和VIDEOSOURCE如下:
COMPILEFLAGS = -I /usr/include -I /usr/local/include -D_LINUX -D_REENTRANT -Wall -O3 -march=nocona -msse3
LINKFLAGS = -L /usr/local/lib -lGVars3 -lcvd -lopencv_core -lopencv_video -lopencv_highgui -lGLU -lGL -llapack -lblas -lgfortran
# Edit this line to change video source
VIDEOSOURCE = VideoSource_Linux_V4L.o
在Tracker.cc的头文件中添加:
#include<unistd.h>
2.3 编译运行
编译:在PTAM所在的目录中直接运行make命令,运行成功后会得到两个可执行文件CameraCalibrator和PTAM(这两个可执行文件依然在PTAM目录中)。
编译好PTAM源代码之后进入PTAM目录,
进Calibrator_settings.cfg
去掉最后一行的注释:// This file is parsed by the CameraCalibrator executable
// Put any custom gvars settings you want in here
// For example: to increase the camera calibrator's blur parameter,
// uncomment the following line
CameraCalibrator.BlurSigma=2.0
之后运行 ./CameraCalibrator 进行相机标定:
使用右上角的CapFrame取帧,至少取不同角度的4帧以上,取帧结束以后,按下Optimize,计算相机本质矩阵(焦距等相机参数)。
CameraCalibrator运行完毕之后运行./PTAM,开始运行时由于需要初始化地图,需要用户选取两帧作为初始化的数据输入,具体操作步骤为按下一次空格键,程序会计算出这一帧的FAST角点显示在图像上,然后做轻微平移,再次按下空格键,初始化完毕。
界面右上方有Draw AR off和View Map on,作用分别是把虚拟物品(此处为四只眼睛)显示到平面上和显示软件所建地图信息。