edu.jhu.ece.iacl.algorithms.manual_label.simulation
Class VolumeRater

java.lang.Object
  extended by edu.jhu.ece.iacl.algorithms.manual_label.simulation.VolumeRater

public class VolumeRater
extends java.lang.Object

Simulates a random surface rater characterized by their 1) Probability of error 2) Probability of boundary error (vs global error) 3) Confusion Matrix (for global error) 4) Probability that boundary errors will occur on particular boundaries 5) Probability that the boundary will "shrink" or "grow". Note: A boundary between label i and j (i!=j, i

Author:
John Bogovic

Constructor Summary
VolumeRater(ImageData truthvol)
           
VolumeRater(ImageData truthvol, float[][] confusion)
           
VolumeRater(ImageData truthvol, float[][] confusion, float[] perError, float totReliability)
           
VolumeRater(ImageData truthvol, float[] perError, float totReliability)
           
VolumeRater(ImageData truthvol, float totReliability, java.util.ArrayList<Point2i> boundaries, float[] boundErrProb, float[] growPerProb)
           
VolumeRater(ImageData truthvol, float totReliability, float[][] confusion, java.util.ArrayList<Point2i> boundaries, float[] boundErrProb, float[] growPerProb)
           
VolumeRater(ImageData truthvol, float totReliability, int[] labels, float[][] confusion)
           
 
Method Summary
 void computeBoundaryInformation()
          Computes boundaries, and boundary vertices
 java.util.ArrayList<Point2i> findBoundaries()
          Find all boundaries that exist in a volume.
static java.util.ArrayList<Point2i> findBoundaries(ImageData vol, GridPt.Connectivity connectivity)
          Find all boundaries that exist in a volume.
 java.util.ArrayList<java.lang.Integer> findBoundarySizes()
          Find the sizes of all boundaries that exist in a volume.
 ImageData genConfRaterVolume()
           
static ImageData genConfusionRater(ImageData vol, ConfusionMatrix confusion)
          Returns a rater volume by passing the label at each point through a confusion matrix.
 ImageData genPerimRaterVolume()
          Returns a simulated rater volume
 java.util.ArrayList<java.lang.Integer> getBoundarySizes()
           
static int[] getLabelList(ImageData vol)
          Gets a list of all of the labels (stored as an int array) that are present on an input volume
static GridPt[] getNeighbors(GridPt pt, GridPt.Connectivity connectivity, int xmax, int ymax, int zmax)
           
static GridPt[] getNeighbors(int i, int j, int k, GridPt.Connectivity connectivity, int xmax, int ymax, int zmax)
           
 void reset()
          clean up everything related to the rater data to prepare to create a new rater
 void setBoundaries(java.util.ArrayList<Point2i> boundaries)
           
 void setConnectivity(byte c)
           
 void setConnectivity(GridPt.Connectivity c)
           
 void setName(java.lang.String name)
           
 void setRand(java.util.Random r)
           
 void setSeed(long seed)
           
 java.io.File writeRaterVolume(java.io.File f)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

VolumeRater

public VolumeRater(ImageData truthvol)

VolumeRater

public VolumeRater(ImageData truthvol,
                   float[][] confusion)

VolumeRater

public VolumeRater(ImageData truthvol,
                   float[] perError,
                   float totReliability)

VolumeRater

public VolumeRater(ImageData truthvol,
                   float[][] confusion,
                   float[] perError,
                   float totReliability)

VolumeRater

public VolumeRater(ImageData truthvol,
                   float totReliability,
                   java.util.ArrayList<Point2i> boundaries,
                   float[] boundErrProb,
                   float[] growPerProb)

VolumeRater

public VolumeRater(ImageData truthvol,
                   float totReliability,
                   float[][] confusion,
                   java.util.ArrayList<Point2i> boundaries,
                   float[] boundErrProb,
                   float[] growPerProb)

VolumeRater

public VolumeRater(ImageData truthvol,
                   float totReliability,
                   int[] labels,
                   float[][] confusion)
Method Detail

setName

public void setName(java.lang.String name)

setSeed

public void setSeed(long seed)

setRand

public void setRand(java.util.Random r)

setBoundaries

public void setBoundaries(java.util.ArrayList<Point2i> boundaries)

getBoundarySizes

public java.util.ArrayList<java.lang.Integer> getBoundarySizes()

setConnectivity

public void setConnectivity(byte c)

setConnectivity

public void setConnectivity(GridPt.Connectivity c)

reset

public void reset()
clean up everything related to the rater data to prepare to create a new rater


genConfRaterVolume

public ImageData genConfRaterVolume()

genConfusionRater

public static ImageData genConfusionRater(ImageData vol,
                                          ConfusionMatrix confusion)
Returns a rater volume by passing the label at each point through a confusion matrix.

Parameters:
vol - 'true' labeled volume
confusion - confusion matrix
Returns:
the 'confused' volume

getLabelList

public static int[] getLabelList(ImageData vol)
Gets a list of all of the labels (stored as an int array) that are present on an input volume

Parameters:
vol - labeled volume
Returns:
array containing all the lables found in this volume

computeBoundaryInformation

public void computeBoundaryInformation()
Computes boundaries, and boundary vertices


genPerimRaterVolume

public ImageData genPerimRaterVolume()
Returns a simulated rater volume

Returns:
the simulated rater volume

findBoundaries

public static java.util.ArrayList<Point2i> findBoundaries(ImageData vol,
                                                          GridPt.Connectivity connectivity)
Find all boundaries that exist in a volume. A boundary is represented by an integer pair. {i,j}=={j,i}

Parameters:
surf - The labeled volume
Returns:
List of boundaries

findBoundaries

public java.util.ArrayList<Point2i> findBoundaries()
Find all boundaries that exist in a volume. A boundary is represented by an integer pair. {i,j}=={j,i}

Parameters:
surf - The labeled volume
Returns:
List of boundaries

findBoundarySizes

public java.util.ArrayList<java.lang.Integer> findBoundarySizes()
Find the sizes of all boundaries that exist in a volume. This assumes that the variable boundaries has been set, either from within this class, or externally.

Returns:
List of sizes of boundaries

getNeighbors

public static GridPt[] getNeighbors(int i,
                                    int j,
                                    int k,
                                    GridPt.Connectivity connectivity,
                                    int xmax,
                                    int ymax,
                                    int zmax)

getNeighbors

public static GridPt[] getNeighbors(GridPt pt,
                                    GridPt.Connectivity connectivity,
                                    int xmax,
                                    int ymax,
                                    int zmax)

writeRaterVolume

public java.io.File writeRaterVolume(java.io.File f)