Public web page of
ColorSurface
ColorSurface Project Definition ( v1x01 )
Overview
The
ColorSurface program will apply a color to the vertices of a mesh
file. Initially, this color will be determined by examining the
voxels of an image volume corrosponding to this mesh file.
This first version will closely mimic the behavior of the
program.
Restrictions, Exclusions, Limitations
People Affected
| Person | Initials | Role | Notes |
| BaeCheol Shin | BC | programmer | |
| Craig Schwartz | CS | project supervisor and programmer | |
| Roger Woods | RW | project sponsor | |
Version
1.0
Approach
- ) Read an Image volume into a 3D shape grid.
- ) Read a mesh surface
- ) Examine the distribution of voxel intensities in the image volume and
create a color map from these intensities. Initially, this will be a
HotMetal? colormap.
- ) for each vertex in the mesh:
- ) find the corrosponding voxel
- ) map the voxel intensity via the color map to color.
- ) associate this color with the vertex.
- ) save the colored mesh surface.
Requirements
- Java 1.5 is used to implement this program
- reads Analyze images
- reads Minc Images
Similiar Programs
ColorSurface is intended to behave similarily to this code:
#!/bin/csh
# USAGE: ./colorobjs.csh Input.mnc Input.obj Output.obj
if ($#argv<2) then
echo "USAGE: ./colorobjs.csh Input.mnc Input.obj Output.obj"
exit
endif
set A = $1
set B = $2
set C = $3
/usr/local/icbm/MNI/bin.sgi/evaluate $A $B /tmp/${A}out.txt
set GG = `/loni/four_d/CGASER/sgi/bin/mincstats -max $A | cut -f2 -d':'`
/usr/local/icbm/MNI/bin.sgi/colour_object $B /tmp/${A}out.txt $C hot 0 $GG
/usr/local/icbm/MNI/bin.sgi/ascii_binary $C
exit
Command line Options
TBD
Requirements Change Procedure
- Changes to be mutually agreed upon by __ and __.
- Changes and their date will be entered in a 'requirements change' list.
Requirements Changes
Products
This project will result in the following products:
- A java application program
- junit test cases
- a pipelline wrapper (.pipe) file for the GRID build
- A Twiki user web page describing in detail, with a picture! the blend algorithm.
- an addition to the ShapeImage library that reads Analyze and Minc files into a 3d shape grid.
Sub Project 1 - a RegularPointSet class
RegularPointSet will be an IPointSet implementation that will model a 3 dimensional lattice of points,
that are evenly spaced.
Because the distances between the points stored by this class are all the same (in each dimension, that is )
we don't need to store the coordinates of the points but can instead compute them when
the values of a specific point is needed.
this class will therefore need, in it's constructor:
the coordinates of the first point , p0
the distances between each point (each dimension will have a different inter-point distance)
the number of points in each dimension.
the number of dimensions of the points stored. (could be any dimension)
thus, a constructor would look like this:
RegularPointSet points = new RegularPointSet(
float [] origin,
int [] counts,
float [] strides)
where:
origin - contains the coordinates of the first point in the point set
counts - contains the number of points per dimension
strides - contains the distance between each point, in each dimension.
thus, the set of points
p0 = (0,0)
p1 = (0, 0.5)
p2 = (0.25 ,0)
p3 = (0.25,0.5)
would be created by
float [] origin = {0,0};
int [] counts = {2,2};
float [] strides = {0.5, 0.25};
Typical Usage
As a
GUI support library
Lessons Learned
(filled out after the post-project review)