
This directory contains facilities for the representation and IO of
images and volumes, and some basic display oriented facilities.

The volume and image oriented stuff is described first:


image.cc
image.hh
image-defs.hh

	These define an image class and some operations on them.
	It is parameterized on element type, currently
	some support is provided for images of unsigned chars,
	unsigned shorts, and floats.

volume.cc
volume.hh
volume-defs.hh

	These define various volume classes and some operations on them,
	(see volume.hh for details).
	Some support is provided for volumes of unsigned chars,
	unsigned shorts, and floats.

	A volume file format: "vf" is defined and supported. It is
	pretty simple. The goal was to have a format where the
	whole volume is in one file, and the voxel dimensions
	are also in the file.  


---------------------------------------------------------------------------
This is a summary of the application programs, and the voxel
sizes they deal with:

IMAGE oriented programs

blur
	smooth and reduce an image	



---------------------------------------------------------------------------
VOLUME ORIENTED PROGRAMS:

CONVERTERS:

genesis-to-vf		8, 16     
noheader-to-vf		8, 16
siemens-to-vf	8, 16
signa-to-vf	8
signa-to-vf-16	16
vanderbilt-to-vf	8 
vf-to-ge		8, 16

these do some conversion among vf, GE (genesis), siemens(CT?) and "vanderbilt"
image formats


COMBINERS:

add-volumes		8, 16 		
mix-volumes		8, 16
subtract-volumes	8, 16


REFORMATTERS:

congruent-volume	8, 16	   

this is typically used after a registration is performed
in order to reformat one data set into the lattice of
another


MUNGERS:

invert-volume		8, 16    
	this reverses the slice stacking order

smooth-3d		8, 16  
	this does smoothing and reduction of vf files,
	either isotropically, or only in XY

wl-volume		8, 16
	this interpolates the intensities of a volume
	according to specified window and level settings


RANDOM UTILITIES:

central-slices	8
	dig the 3 orthogonal central slices out of a volume
	as pgm files

extract-slices	8	
	convert a volume into a bunch of pgm files.

mix-volumes
	makes a "checkerboard" composite of two volumes
	for checking registrations...


---------------------------------------------------------------------------
---------------------------------------------------------------------------
----------------------------------------------------------------------
---------------------------------------------------------------------------
---------------------------------------------------------------------------
---------------------------------------------------------------------------
The display oriented stuff includes the following:


win.cc
win.hh
	these implement a simple facility for putting things up under X


mother-widget.c
mother-widget.h
	these are a convenience wrapper on the athena widgets

volume-disp.cc
volume-disp.hh
	contains simple volume display primitives:
		cine loops and triplane displays


OTHER APPLICATION PROGRAMS:
		
mother
	a simple example program using mother-widget stuff.
	can also be used to prototype GUI layouts.

browse-image	
	a rudimentary interactive image browser. 
	mostly an example program for the mother widget facility

cruise-volume
	walk thru the slices of a volume

tp-display
	display the 3 central slices of a volume
	pays attention to voxel dimensions

dual-tp-display
	display the 3 central slices of two volumes
	pays attention to voxel dimensions


-------
cwin.c is archaic c-code that can be cannibalized

--------


