Compiling PTAM (Win32)

It took quite some time to get everything working. Here is a quick break-down. Compling works fine. But PTAM isn't doing anything meaningful so far. Everything was done using Visual Studio 2010 Ultimate.

  1. get the PTAM source code
    • unpack and read the containing README.txt
  2. get all dependencies named in the README.txt
    • fltk-2.0
    • gvars3 (see 3. )
    • jpeg-6b
    • libvcd (see 3. )
    • pthreads
    • TooN
    • 1394camera645
    • glew 1.6.0
    • lapack
  3. I noticed that the code revision for gvars3 and libvcd, which is referenced in the README.txt, dosen't work quite well. So I took the HEAD revision (date: 19.05.2011)
  4. unpack all dependencies (some come as self-extracting or install packages, so it is necessary to watch where the files go and move all the one place)
  5. adjust the include/library paths of libvcd and gvars3 and compile both (using the included VC2005 projects)
    • gvars3 include:
    • libcvd include:
    • libcvd lib:
  6. (from now on everything in the PTAN project) adjust the include/lib paths also
    • include paths:
      include;$(ProjectDir)..\ptam dependencies;$(ProjectDir)..\ptam dependencies\gvars3;$(ProjectDir)..\ptam dependencies\pthreads\Pre-built.2\include;$(ProjectDir)..\ptam dependencies\libcvd
    • lib paths:
      $(ProjectDir)..\ptam dependencies\pthreads\Pre-built.2\lib;$(ProjectDir)..\ptam dependencies\gvars3\lib;$(ProjectDir)..\ptam dependencies\libcvd\lib;lib
  7. open SymEigen.h and search for //calculate eigenvalues (at line 184)
    replace in the next line the two calls of sqrt from sqrt(3) to sqrt(3.0)
  8. add /FORCE:MULTIPLE to the linker options (suggested by JC) and compile
  9. copy the following dlls from the dependencies to the Release folder
    • pthread*.dll
    • glew32.dll
    • lapack_win32_MT.dll, blas_win32_MT.dll
  10. run PTAM.exe

Experiment #1 - JavaSIFT

Just tried to do a first experiemnt using the ImageJ plugin JavaSIFT.

I took nine pictures* of my house with my smartphones camera. The goal was to let JavaSIFT reigster some interest points and then to see what I can do with that (JavaSIFT has some "align images" function). Turned out that the plugin is kind of broken: it does find interest points but right after that it stops with an MethodNotFound exception.

First experiment: failed.

I guess I'm not going to dive into the code to find out what the problem is. Eventually I'll play around a little with ImageJ (there are some dependencies, maybe they weren't loaded properly or so).

* thesis/experiment 1/foto set 1

Stephan Saalfeld - ImageJ Plugins - JavaSIFT.