An isosurface
is created by considering the stacked image set to be a three dimensional array
of numbers. Each number is the pixel
value of an image that makes up the image set.
We can specify a value and find the surface the separates regions less
than the value from regions greater than the value. The three dimensional surface is analogous to contour lines on an
elevation map, where the contour lines are on a constant elevation and divide
higher elevations from lower elevations.
An isosurface is also referred to as a constant level surface. At this time we do not bit map the
isosurface and so cannot refer to its volume.
In
this implementation we have restricted the isosurface generation to the images
shown on a screen. If the screen is
that which displays all the images of a stacked image set, than the isosurface
is made from the entire image set.
However, one could put select images on another screen and generate
isosurfaces from just those images. The
process uses only images that are in parallel planes. For example, one could reformat a series of coronal images on a
separate screen and generate an isosurface from that.
To
access isosurfaces, go to Contouring on the main tool bar and select
Isosurface. On the isosurface tool bar,
there is an option menu on the right that allows one to select an
isosurface. The items on the IsoSurface
pulldown that is between the option menu for selecting the image set and option
menu for selecting an isosurface, pertain to the currently selected isosurface
in most cases.
On
the IsoSurface pulldown select New IsoSurface to create a new isosurface. The color defaults to gray. Specifying a name, color, material
properties, a description, are similar to that for outlined volumes above and
so we will not repeat that material here.
Likewise Frame Control and selecting active or inactive are the same
except that an isosurface is not drawn in 2d images and so the 2d control has
no effect.
Specify Isovalue Popup |
To
create an isosurface you must specify an isovalue. The value we select is the voxel value for the image set. Typically for CT, the Hounsfield number for
air (-1000) corresponds to 24, water
(0) to 1024, and Hounsfield +1000 to 2024.
Simply add 1024 to the Hounsfield number to get the pixel (voxel) value
actually stored.
On
the IsoValue pulldown select Select Isovalue.
A popup appears whose controls we describe below.
You
can find the value of any voxel by simply clicking the mouse on any image in
the current image set that you have selected.
We simply show the value at the top of the Select IsoValue popup.
You
may then select the isovalue that you want to use by either sliding the scale,
or adjusting the wheel for finer control, or by typing in the value in the text
field provided. When typing in, you
must hit the Enter key after entering the number you want.
You
may restrict the surface found to that within a volume that you have outlined. For example, if you want to see a lung
isosurface (using CT), select an isovalue in the range of 300 to 800, but
restrict to inside the body surface outline.
Otherwise, you will also pick up the body surface since it also borders
between values of the order of 1024 and 0.
For bone you usually need not restrict the surface to any volume. You may have other reasons to restrict the
surface to that within some outlined volume.
The
restriction is to the interior of the outlined volume, but also excluding those
voxels that are in but on the edge of the volume. If you later delete the volume selected, you won't be able to
regenerate the isosurface restricting to that volume since the volume would now
be gone. Any further changes to the
restricting outlined volume will have no effect upon the currently generated
isosurface. You would have to delete
the isosurface and regenerate it if you want a change in the restricting volume
to effect the isosurface.
Another
consideration is the maximum array dimension allowed. If your images are 512x512 for example and this value is set at
130, then the image data will first be reduced to 128x128 by averaging pixels
and then an empty row of pixels is added to all sides to make the final result
130x130. Increasing this value will
greatly increase processing time, drawing time, and memory used by the
system. Averaging down the image size
will reduce details however. Further
reductions in resolution occur with the generation of more than one set of
surface triangles, and the result that is drawn in a window will depend upon
the size a triangle will project to on the screen. You have control of that in Frame Control. A surface rendering algorithm is used to
generate an isosurface. The surface found
is saved to disk and retrieved when you retrieve the image set.
For
lack of a better place, we put a control here for the definition of what is the
outside surface of an isosurface. For
bone with CT the larger number would be on the inside, whereas for lung, the
larger number would be on the outside.
You can change this choice at any time, and it takes effect immediately
if the surface is all ready generated.
The OK and Cancel buttons below have no effect and do no apply to the
status of this choice.
When
you hit the OK button the program will proceed to generate the isosurface for
the images of the selected image set on the current screen you are looking
at. Normally you would pick the screen
that shows all the images of the image set.
However, you may create and use some other screen. However, the program can only use images
that are coplanar. If more than one
group of coplanar images is found on the screen, the program will simply use
the group with the largest number of images.
We do not believe any further sophistication is necessary as you are in
control of building the screen.
If
none of the parameters have changed since the prior surface was generated, the
algorithm will not be run again, regardless of any change in the screen. You can change the isovalue by a single
digit if you are effecting some change in the images used and want to force a
new surface generation. If the
restricting volume has been changed, than a parameter has been set accordingly
to generate a new surface upon hitting OK.
Cancel
will simply pop down the popup without anything happening.