Skip to content.
CCB > CCBSIGS > ShapeToolLibraryProgram > ShapeToolProgramProductStatusSummary > ColorSurfaceProjectDefinitionv1x0
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

  • java 1.5 is expected

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

  1. ) Read an Image volume into a 3D shape grid.
  2. ) Read a mesh surface
  3. ) 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.
  1. ) for each vertex in the mesh:
    1. ) find the corrosponding voxel
    2. ) map the voxel intensity via the color map to color.
    3. ) associate this color with the vertex.
  2. ) 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)
  • lesson 1