Getting started

Printer-friendly page


About the Voxel Coloring Framework

During my Bachelor project Computer Science I developed a practical setup for Voxel Coloring. I had to implement Voxel Coloring (again) as there were no open-source implementations available. My implementation of Voxel Coloring is released under the Academic Free License, and can be used freely as long as you make a reference to my Bachelor thesis and this website (that is basically what the license says).

What is Voxel Coloring?

Using Voxel Coloring (or space carving) is an algorithm which will turn a number of photos of an object with known camera positions into a 3D voxel reconstruction.

Tweety is copyrighted and trademarked by Warner Bros, Inc.

Getting started

A step-by-step guide is part of an assignment developed for a Machine vision course. This assignment describes all steps needed to perform a 3D reconstruction using Matlab and the Voxel Coloring Framework. Together with the assignment comes special version of the framework and some extra utility scripts for camera calibration.

Current version is 1.0 (18-11-2004)

This site is not finished yet, but the VCF package is. This package is very usable in a Computer Vision course as part of a Matlab practical assignment (students can experiment with their own consistency check). If you do not want to reimplement parts yourself, then you can download the normal distribution as this contains all files also found in the assignment.

What is available right now (as version 1.0):

  • OpenGL Voxel Viewer to view reconstructions
  • Voxel Coloring C++ implementation to be used in conjunction with Matlab
  • Matlab consistency check: the C++ implementation can use a Matlab consistency check with user code (suffering a severe performance penalty though).
  • The rose dataset from my project with camera calibration included. It is ready to use with the above implementation.
  • Matlab scripts to perform a reconstruction
  • Extra calibration scripts to be used in conjunction with Bouguets camera toolbox.
  • DisplayMode utility: change screen resolution from the command-line
  • PLY viewer: (beta) this can be used to view reconstructions on other platforms than Windows. There are Matlab scripts to convert between the VCF native format and .PLY.

You can get more information on the download page.


What exists, but will/might become available later:

  • Image Acquisition function. Right now, our Matlab code for this is not included as it is part of the assignment (it defeats the point of the assignment if we include it).
  • Reprojecting reconstructions to input image viewpoints, so you can compare your reconstructions to the input (needs to be easier to use before it can be released and uses too much memory)
  • Phidget servo engine control from Matlab (will be contributed to the Phidget website as image acquisition will not be part of VCF, and needs to be tested with latest drivers instead of custom-built drivers).
  • Corner detection filter from my AI project

What does not exist, but would be nice:

  • Hierarchical voxel coloring
  • Upgrade corner detection filter so it is usable for automatic extrinsic calibration?
  • Stand-alone reconstruction, instead of depending on Matlab? This is very possible as all major code is in C++ and C++ code supports .RAW image loading. Primary 'problem' would be to load all input with error detection on the same level as the Matlab scripts do.
Can't open Count database for writing.