Contamination Project Tools

The following tool/codes are provided to increase the applicability of the acquired data. Most of them are in Matlab. Some routines are written in C++ and compiled by mex for efficiency. The comments in the code contain detailed usage instructions. Please note this is "research-type" code and may have bugs; use it at your own risk.

Synthesis Tool

[Download (5.7MB, in Matlab)]

This is a simple interactive tool to synthesize large texture patterns from the acquired contamination patterns. The synthesized texture, in which each channel corresponds to one kind of parameter for the contaminant, can be mapped on arbitrary transparent objects for rendering. The following image shows the interface. We first build a database by selecting a collection of prototypes for each of the three categories of contamination (dust, dirt, and lipids) from the measured data. For synthesis, a user selects prototypes from each category for the desired contamination pattern and specifies the size of the output texture. For example, the desired pattern might be a combination of fingerprints or smudges, some stripes of water deposit, and a layer of dust. The tool then synthesizes a contamination layer for each prototype individually. For dust, we use Image Quilting for synthesis. For lipids (fingerprints), we randomly transform (scale and rotate) the prototype and randomly tile several copies on the canvas. For dirt, we use a similar random placement but we limit the range of rotation and translation since the water stripes usually are on the top of an image. The three synthesized layers are then alpha-blended together to generate the final texture. A user can control the amount and the range of transformation for each prototype and also add/remove more prototypes interactively.



Estimation of g from the Falloff Image

[estimateG.m][fit_g_curve.m]

EXR file I/O in Matlab

[Download (454KB, in Matlab)]

Database Home
Contact: jwgu@cs.columbia.edu
Last modified: 06/02/2007