VolumeJ
Class VJSurfacePlotShell

java.lang.Object
  |
  +--java.lang.Thread
        |
        +--VolumeJ.VJRenderView
              |
              +--VolumeJ.VJRenderViewCine
                    |
                    +--VolumeJ.VJSurfacePlotShell
All Implemented Interfaces:
java.lang.Runnable

public class VJSurfacePlotShell
extends VJRenderViewCine

This class implements utility for surface plotting. Surface plotting is a rendering technique that displays a 2-D image in the form of a colored, shaded volume rendering. The 'heights' of the shape in the volume rendering derive from the pixel values in the 2-D image. Algorithms, implementation (c) Michael Abramoff Idea from: Paulo Magalhaes, PhD University of Padua Dept. Biomedical Sciences Viale G. Colombo, 3 Tel: +39 049 827 6065 I-35121 Padua - Italy Fax: +39 049 827 6049 Copyright (c) 1999-2003, Michael Abramoff. All rights reserved.


Fields inherited from class VolumeJ.VJRenderViewCine
n, stepx, stepy, stepz, toDisk
 
Fields inherited from class VolumeJ.VJRenderView
description, m, message, mLight, renderer, rotx, roty, rotz, running, scale
 
Fields inherited from class java.lang.Thread
inheritableThreadLocals, MAX_PRIORITY, MIN_PRIORITY, NORM_PRIORITY, threadLocals
 
Constructor Summary
VJSurfacePlotShell(VJRenderer renderer, float scale, float xrot, float yrot, float zrot, Volume vimages, float min, float max, float aspectz, float sigma, java.lang.String message)
          Instantiates a new surface plotting rendering shell.
 
Method Summary
protected static VolumeShort imagesVolumeToSurfaceVolume(VolumeShort vimages, int k, float max, float min, float aspectz, float sigma)
          Convert the k'th 2-D image slice in vimages to a surface VolumeShort.
protected  void nextView(int k)
          Prepare for the (k+1) th rendering in a cine rendering.
 
Methods inherited from class VolumeJ.VJRenderViewCine
run, setRotationSteps
 
Methods inherited from class VolumeJ.VJRenderView
center, computeTransformationMatrix, kill, memoryInUse, renderToImageProcessor, renderToPixelArray, report, toString
 
Methods inherited from class java.lang.Thread
, activeCount, checkAccess, countStackFrames, currentThread, destroy, dumpStack, enumerate, getContextClassLoader, getName, getPriority, getThreadGroup, interrupt, interrupted, isAlive, isDaemon, isInterrupted, join, join, join, resume, setContextClassLoader, setDaemon, setName, setPriority, sleep, sleep, start, stop, stop, suspend, yield
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

VJSurfacePlotShell

public VJSurfacePlotShell(VJRenderer renderer,
                          float scale,
                          float xrot,
                          float yrot,
                          float zrot,
                          Volume vimages,
                          float min,
                          float max,
                          float aspectz,
                          float sigma,
                          java.lang.String message)
Instantiates a new surface plotting rendering shell. This shell can render a stack of surface plots from a stack of images.
Parameters:
renderer - a VJRenderer
scale - the amount by which to scale the volume
rotx, - roty, rotz the amount by which to rotate the amount in that order.
vimages: - a VolumeShort containing the images to be sufrace plotted.
min, - max: the minimum and maxium values within vimages (determines the height of each srface volume)
aspectz: - the aspect ration in the z-direction.
sigma: - Standard deviation of a Gaussian smoothing kernel before rendering starts.
message - a useful message to identify the characteristics of this rendering.
Method Detail

nextView

protected void nextView(int k)
Prepare for the (k+1) th rendering in a cine rendering. In this case, get the k+1 image from vimages and make a volume from it to be rendered.
Overrides:
nextView in class VJRenderViewCine
Parameters:
k - the number of the current (i.e. before the next) rendering.

imagesVolumeToSurfaceVolume

protected static VolumeShort imagesVolumeToSurfaceVolume(VolumeShort vimages,
                                                         int k,
                                                         float max,
                                                         float min,
                                                         float aspectz,
                                                         float sigma)
Convert the k'th 2-D image slice in vimages to a surface VolumeShort. This means that it contains an index increasing with increasing y, and that intensities in the 2-D image are converted into columns of corresponding height in the sufrace volume. The image in vimages is extruded along the y-axes of the surface volume. The columns start at y=0 and extend up till the pixel intensity of the corresponding pixel in the 2-D image, and are filled with voxel value 255. All others are filled with 0. The index value of every voxel is set to the y value of that voxel. For now, only 8-bit and 16-bit images can be processed.
Parameters:
vimages - an VolumeShort containing the 2-D images.
k - the index to vimages.
depth - the eventual number of slices in the volume
min - the minimum pixel value in vimages.v[k].