This code is last modified by Alireza Fathi at Stanford University, 08/09/2013. This is relatively a big code and depends on many libraries. ******* You need CMake for compiling this code. ******* This code depends on OpenCV that is compiled with CUDA. Here are links for how to install CUDA, ffmpeg, and OpenCV with CUDA dependencies on Ubuntu: CUDA: http://sn0v.wordpress.com/2012/12/07/installing-cuda-5-on-ubuntu-12-04/ FFMPEG: https://ffmpeg.org/trac/ffmpeg/wiki/UbuntuCompilationGuide OPENNI: http://ramsrigoutham.com/2012/07/08/getting-started-with-kinect-on-ubuntu-12-04-openni-nite-simpleopenni-and-processing/ ******* This code depends on MATLAB. It can read from MAT files, and save to MAT files. Go to CMakeLists.txt and set the correct path for MATLAB and other required libraries. Make sure to add the the path to MATLAB libraries to your LD_LIBRARY_PATH variable and the path to MATLAB executables to your PATH variable in ~/.bashrc ******* This code depends on VLFeat by Andrea Vedaldi. Use the lastest VLFeat version, compile it, and fix the path in CMakeLists.txt Make sure to add the path to VLFeat libraries to you LD_LIBRARY_PATH variable in ~/.bashrc ******* You have the choice to choose between Felzenszwalb or Berkeley gpb for segmentation. I personally recommend Berkeley for multiple reasons: - It is more accurate. - It returns contours with weights, which can be used for segmentation at different granularities. The only drawback of Berkeley code is that is is slow. If you use the GPU based code (Damascene) (http://www.catanzaro.name/?Software) it takes a few seconds for computing contours depending on the size of the image. This code sometimes requires precomputed contours in the folder that can be foudn in DatasetStuff.cpp