最近有需要研究PTAM,所以需要在我的MAC上编译安装,整个过程让人非常崩溃各种问题陷阱。现在整理一下编译过程。我已经成功在MAC上编译。那么接下来我会详细讲解整个过程:
注意: 部分链接可能需要FQ(政府就知道防范异己者但也影响了我们正常的学术交流)
1. 先安装 blas & lapack
- LAPACK, see http://www.netlib.org/lapack/
- BLAS, see http://www.netlib.org/blas/
先安装BLAS ,需要gfortran 编译器,所以下个gfortran编译器事先,要GNU标准的。
打开终端,然后cd 到BLAS目录
$ make
然后将获得的blas_Linux.a 改名 为 libblas.a 并将改名后的文件拷贝到 /usr/local/lib/
同理cd 到lapack 然后
$make
然后将获得的liblapack.a 如果不为这个名字改一下 并将改名后的文件拷贝到 /usr/local/lib/
2. 安装 ncurses 直接在终端下载安装
$ curl -O ftp://ftp.gnu.org/gnu/ncurses/ncurses-5.9.tar.gz $ tar -xzvf ncurses-5.9.tar.gz $ cd ./ncurses-5.9 $ ./configure --prefix=/usr/local \ --without-cxx --without-cxx-binding --without-ada --without-progs --without-curses-h \ --with-shared --without-debug \ --enable-widec --enable-const --enable-ext-colors --enable-sigwinch --enable-wgetch-events \ && make $ sudo make install
3. 安装TooN 非常简单
$git clone https://github.com/edrosten/TooN.git toon $cd toon $./configure $make install
4. 安装libdc1394
不要从homebrew直接安装 ,因为他默认是64-bit编译的。我们需要32-bit 编译 所以下载安装
libdc1394 下载
$CFLAGS="-arch i386 -m32" CXXFLAGS="-arch i386 -m32" LDFLAGS="-arch i386 -m32" ./configure --disable-sdltest $make -j8 $make install
5. 需要一些 libtiff, libjpeg, libpng 库 直接 从homebrew 安装就可以 还需要事先安装 xquarz x11(从网上找下载安装)
拿libpng 为例:(需要安装homebrew)
$brew install libpng
其他类似
6.安装 libcvd
$git clone https://github.com/edrosten/libcvd.git libcvd $cd libcvd $vi configure.in # 修改第 483 行 (如果不会用vi可以直接打开这两个文件 configure.in 和 cvd_src/image_io/cvdimage.cxx 修改) # 将 int main(){InitCursor();EnterMovies();return 0;}])], # 改为: # int main(){EnterMovies();return 0;}])], # 去掉 580 行: # a=0 vi cvd_src/image_io/cvdimage.cxx # 修改第 45 行 # #ifdef __GNUC__ # 为: # #if defined __GNUC__ && !defined __clang__ $ autoconf # Run XQuartz before configure $Xquartz & CPPFLAGS="-D_REENTRANT -I$HOME/include" CFLAGS="-arch i386 -m32" CXXFLAGS="-arch i386 -m32" LDFLAGS="-arch i386 -m32 -L. -L/usr/lib" ./configure --x-includes=/opt/X11/include --x-libraries=/opt/X11/lib --without-ffmpeg --disable-fast7 --disable-fast8 --disable-fast9 --disable-fast11 --disable-fast12 $make -j8 $make install
7 安装 gvars3
需要事先安装依赖库 readline 直接从homebrew安装
$brew install readline
从Git 安装 gvars3 (注意检查你下载的 readline 版本 修改下面路径中的版本 例如6.3.6)
$git clone https://github.com/edrosten/gvars.git gvars $cd gvars $CPPFLAGS="-I/usr/include -I/usr/local/Cellar/readline/6.3.6/include" CFLAGS="-arch i386 -m32" CXXFLAGS="-arch i386 -m32" LDFLAGS="-arch i386 -m32 -L/usr/lib -L/usr/local/Cellar/readline/6.3.6/lib" ./configure --disable-widgets $make -j8 $make install
8 安装 PTAM
ptam 下载
修改 /build/OSX/ 中的两个文件
首先makefile
将 -I/usr/include -I/opt/X11/include -I/usr/local/include 添加到 COMPILEFLAGS
将 -L/usr/lib -L/opt/X11/lib -L/usr/local/lib 添加到 LINKFLAGS
将 -arch i386 -m32 添加到CC 后面
去掉有 /Developer/Tools/Rez 的两行
再来修改 VideoSource_OSX.cc
添加 头文件
#include <unistd.h>
终端 CD 到这个问目录
$ make -j8
编译成功后会有 CameraCalibrator 和 PTAM两个可执行文件 。
如何使用 可以看这个 网址 http://www.robots.ox.ac.uk/~gk/PTAM/usage.html (需要FQ)
摄像头一定要 外置USB 摄像头 ,内置的不可以。