This is the manual for "volfill", a program for filling in holes in volumetric data. The program was written to read and write .vri files, but with appropriate file conversion, there is nothing preventing this program from working with other file formats.
The volfill program fills in holes using a technique called volumetric diffusion. The program was designed to be run on large data sets (such as the David), and because of this, uses run length encoding to store the volumetric data. In order to speed up processing, two criteria are used to decide on whether data should be blended. One measures distance from an active edge (d2) and the other measures the distance from a newly created edge (d1). Each voxel stores its corresponding d1 and d2 value. D2 is set to zero when a voxel has an opposite signed neighbor as well as an empty neighbor. D1 is set to zero when a voxel has an opposite signed neighbor and is newly created data. For other voxels, their d1 and d2 values are the minimum value of all of their neighbors plus one.
To compile the volfill program simply type make in the same directory as the makefile and the source code
The usage for volfill is
volfill input.vri output.vri ... 'optional parameters'
Where optional parameters are
Volfill also comes with a graphical display that can be used to visualize a slice of the voxel grid. It is activated with the -g command line option. OpenGL and glut is required to use the graphical mode. If you would like to compile the program without these libraries, simply comment out the glut function calls in main.cc and in fb.cc.
When in the graphical mode, the following keys are used to perform actions