VolumeJ
Class VJProjection

java.lang.Object
  |
  +--VolumeJ.VJProjection

public class VJProjection
extends java.lang.Object

This class is a set of projections of an object. Its properties are the projections (as images) and the projection angles of each image. It belongs to the BackProjection group of algorithms. Copyright (c) 1999-2002, Michael Abramoff. All rights reserved.


Field Summary
protected  int n
          The number of projection images.
protected  java.lang.Object[] sliceArray
          The projection images.
protected  int sliceHeight
           
protected  int sliceWidth
          The width of each projection image.
protected  float[] theta
          Angle (in degrees) of each projection image.
protected  int type
           
 
Constructor Summary
VJProjection(double deltaAngle, java.lang.Object[] sliceArray, int n, int width, int height)
          Create a new projection.
 
Method Summary
 void backproject(Volume v)
          Backprojection around a single axis y.
protected  void buildAngles(double deltaAngle, int n)
          Compute the angle of each projection image for a sequence of equidistant projection images.
 int getHeight()
          Return the height of the images in sliceArray.
 java.lang.Object[] getImageArray()
          Return the slice array this back projection is based on.
protected  int getType(java.lang.Object[] array)
          Return the datatype of the array components.
 int getWidth()
          Return the width of the images in sliceArray.
 int n()
          Return the number of projection images in this projection.
 
Methods inherited from class java.lang.Object
, clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

type

protected int type

theta

protected float[] theta
Angle (in degrees) of each projection image.

sliceArray

protected java.lang.Object[] sliceArray
The projection images.

n

protected int n
The number of projection images.

sliceWidth

protected int sliceWidth
The width of each projection image.

sliceHeight

protected int sliceHeight
Constructor Detail

VJProjection

public VJProjection(double deltaAngle,
                    java.lang.Object[] sliceArray,
                    int n,
                    int width,
                    int height)
Create a new projection.
Parameters:
deltaAngle - the distance in degrees between each projection image.
sliceArray - an array of Object-s with in each object a byte, short or int image.
n - the number of projection images in sliceArray.
width - the width of each projection image in sliceArray.
Method Detail

getImageArray

public java.lang.Object[] getImageArray()
Return the slice array this back projection is based on. Can be used for pre-filtering the projection images.
Returns:
the sliceArray as an Object.

getWidth

public int getWidth()
Return the width of the images in sliceArray.
Returns:
an int with the width.

getHeight

public int getHeight()
Return the height of the images in sliceArray.
Returns:
an int with the width.

getType

protected int getType(java.lang.Object[] array)
Return the datatype of the array components.
Parameters:
array - an array of objects.
Returns:
BYTE if array is of type byte[], SHORT if array is of type short[], INT if array is of type int[] and FLOAt if array is of type float[].

buildAngles

protected void buildAngles(double deltaAngle,
                           int n)
Compute the angle of each projection image for a sequence of equidistant projection images.
Parameters:
deltaAngle - the distance between each projectioon image in degrees.
n - the number of projection images.

n

public int n()
Return the number of projection images in this projection.

backproject

public void backproject(Volume v)
Backprojection around a single axis y. This is the inverse of tha Radon transform. Backproject each projection image into the volume.
Parameters:
v - a VolumeFloat that has the right size to be filled with the backprojection.