Skin and Muscle Models
Skin and Muscle Models
-
The skin and muscle models were extracted from the cryosection slice data from the Visible Human Project
male dataset. Below, an example slice from the dataset is pictured. The cryosection data was chosen for
a number of reasons. First of all, muscle does not show up well (or at all) on CT scans. Muscle tissue
is easily segmented from the rest of image by simply searching for red. Secondly, the skin was distorted
in the CT scans in the area of the nose. When they "zoomed in" to get higher resoltution images of the
brain, the area of the nose was outside the scanner's field of view. As you can see in the second image,
the nose remains perfectly intact in the cryosection data.
Slice from Midsection of Body
Slice from Head Region
-
Despite the attractive features of this data set, one must work quite hard to segment out useful
features. The approach taken here, was to perform segmentation on each two-dimensional slice.
The resulting black and white image can be used for producing isocontours.
Creating a Mask
-
The first thing to do is to define the body region within the slice. This mask will narrow down the area
within the image to search for various anatomy within the body.
Holes inside the slices and the ice around the body are colored blue. Nothing natural inside the body
is colored blue. This is the first piece of information used to determine the body area. To do this, the
RGB image is first transformed into the HSV color space (Hue, Saturation, Value). This space is more
suitable for identifying specific colors (blue, red) which differ in darkness.
Upon completion of the transformation, a search is performed within the image for values of "blue". This
is accomplished by searching for a range of hues. The range of hues of interest is modeled as a gaussian
distribution. The hue of interest is defined as one which is plus or minus one standard deviation of the
mean. In this case, all the values of interest, the blue hues, are set to zero. The figure below shows
the result. (Note that a black border is drawn around the image and a threshold is placed on value.)
Blue Hues Removed
-
Each non-zero value is set to be white. The resulting image is rather noisy as shown.
Non Zero Values Set to 255
-
Much of the noise can be removed using morphological operations. (Linear filters were not chosen so that
sharp boundaries would be preserved.) In this case, an open (erosion followed by dilation) with a
circular window is applied to the entire image. This removes much of speckel noise. The remaining small
blobs are removed by applying a minimum blob size. Blob size is determined by recursively going through
each blob and counting the number of pixels in that blob. If the number of pixels present is less than
the minimum blob size, the pixels in that blob are set to zero.
Cleaned up Body Blob
-
There are "holes" still present in the interior of the blob. To remove these, the outer region of the
image is flood-filled starting at (0,0) with a value other than 0 or 255 (say 128). The pixels which are
not equal to the fill value are set to 255. The outer region is then set back to 0. The resulting image
is absent of holes. This result is the final mask. These mask slices are used to construct the skin
volume data.
Mask
Segmenting Out Muscular Tissue
-
Since we now have a mask to start with, segmenting muscular tissue is much easier. We first and the
entire image with the mask. This produces an image which is much like the first one produced in creating
the mask. As before, the color space is transformed to the HSV color space. Then, we look for red hues.
Instead of zeroing out the matching pixels, the non-matching pixels are zeroed.
Matched Muscle Regions (Red Hues)
Binarized Muscle Regions
-
The image is noisy, as was seen in the first binarized image for the mask. The image is improved using
an open operation and by applying a minimum object size. The flood fill would not help remove inner
holes since they are connected to the rest of the image. These holes may actually be desireable as they
are an artifact of the muscle texture.
Final Extracted Muscle Segmentation
Model Production
-
The slices are saved to individual files. A later tool compiles the slice files into volume data. The
volume is saved as .raw format. This file should then be able to be used in existing isocontouring
applications to create isosurfaces. Below is an example created from a portion of the skin volume.
Isosurfaces from Head Area of Skin Volume
Lessons Learned
- The CT data set is horrendous to work with. It is extraordinarily difficult to get a full body model from it.
- The face explodes in the CT data set due to shadowing effects caused by the inmate's fillings.
- The elbows move out of the field of view of the CT scanner, and are therefore, missing.
- They physically cut the body in at least two places. These cuts create missing slices and severe discontinuities.
- The cryosection data is not the holy grail. Although many parts of the body can be readily segmented,
bone remains elusive.
- Big Endian + Little Endian = BIG HEADACHE!
Endian issues have been the major source of most of my errors throughout the semester.
Special thanks to Kevin Baldor for inspiring my solutions, and Florian Mayer for bearing with me.
Sue Baldor
May 9, 2002