next up previous
Next: Spiny Dendrite (hippocampus): Experimenting Up: Results Previous: Engine Block: Effectiveness of

Subsections


CT Head: Effect of changing histogram volume size

The CT scan of a female cadaver's head which Levoy used in his original paper has, like the ``engine block'', become a reference dataset often used to demonstrate volume rendering algorithms. This dataset is available with the Stanford VolPack library distribution, or it can be downloaded from the Stanford Computer Graphics Laboratory web page13. It is a $ 256 \times 256 \times 225$ volume of 8-bit values. Because the CT scan contains a lot of background (air), the dataset can be significantly cropped without impinging on the cadaver head itself14. We use the Hessian second derivative measure to produce a $ 256^3$ histogram volume which includes first derivative values from zero to 66.0, and second derivative values from -43.0 to 43.0.

Figure 6.8: CT head analysis and rendering
headinfo1.jpg

Figure 6.8 begins with a slice of the dataset and the two scatterplots. The two boundaries that are most evident from the scatterplots are those between air (around value 15) and soft tissue (value 90), and between soft tissue and bone (value 175). This is confirmed by looking at the plots of $ g(v)$, $ h(v)$, and $ p(v)$ in Figures 6.8(d) through 6.8(f). The nearly ideal shape in the lower segment of $ p(v)$'s graph (below value 90) indicates a clean boundary, while the upper segment of $ p(v)$'s graph (above value 90) is somewhat distorted.

Still, using a simple boundary emphasis function (Figure 6.8(g)) results in an opacity function with two main peaks which successfully display the air-skin and tissue-bone boundaries. The rendering in Figure 6.8(j) was produced with the opacity function in Figure 6.8(h). Besides seeing the surface of the skin, we also can discern the gauze over the forehead and under the chin that was used to immobilize the head during scanning. The spikes projecting from the mouth are an artifact in the dataset due to dental fillings scattering the X-rays. By removing the lower of the two peaks (Figure 6.8(i)), the surface of the skull becomes visible (Figure 6.8(k)). The third smaller peak did not correspond to any significant boundary.

Figure 6.9: CT head analysis and rendering using $ 64^3$ histogram volume
headinfo2.jpg

As was mentioned in Section 4.3, generation of opacity functions is possible from histogram volumes smaller that the $ 256^3$ sizes used elsewhere in this thesis. Figure 6.9 shows the analysis of the CT head using a $ 64^3$ histogram volume. The plots of $ g(v)$, $ h(v)$, and $ p(v)$ in Figures 6.9(a) through 6.9(c) are similar to those for the $ 256^3$ histogram volume (Figures 6.8(d) through 6.8(f)), but they are noticeably smoother. As a result, the generated opacity functions are also smoother, which is sometimes a benefit if the rendering algorithm produces artifacts as a result of sharp changes in the opacity function15. However, smoother $ g(v)$, $ h(v)$, and $ p(v)$ functions are less accurate with respect to the original dataset, and this can be a very significant problem. For instance, the need for a higher $ g_{thresh}$ setting (Figure 6.9(a)) means that the new $ p(v)$ function (Figure 6.8(f)) has a steeper slope, and thus the peaks in the new opacity function (Figure 6.9(e)) are narrower than before, even though we have used the exact same boundary emphasis function (Figure 6.9(d)), and nothing has changed about the underlying dataset. In spite of this, the new opacity functions still lead to acceptable renderings of the air-skin boundary (Figure 6.9(g)) and the tissue-bone boundary (Figure 6.9(h)).


Comparison with renderings using Levoy's method

Section 5.4 gave an overview of Levoy's two dimensional opacity functions and compared them to the ones presented in this thesis. We now compare the results of the two methods on the CT head dataset, as this is the only dataset we have renderings of using Levoy's technique. Levoy used the second of his two opacity functions, those designed for visualizing ``region boundary surfaces'' as described in Section 5.4.2. However, the exact settings he used for the opacity function (that is, the CT numbers he chose for each material), were not described, nor were any of the lighting or shading parameters for the rendering. The images which appeared in his paper, shown in Figure 6.10, will serve as the basis for the comparison.

Figure 6.10: Renderings of the CT head from Levoy's paper
\begin{figure}
\centering {
\epsfig {figure=eps6/levoy/levoybald2.c.high.eps, width=0.9\columnwidth}}
\end{figure}

Figure 6.11: Precursors to $ \alpha (v,g)$ calculation for CT head. The $ p(v,g)$ calculated is shown in (a), and a new boundary emphasis function is shown in (b)
\begin{figure}
\setcounter {subfigure}{0}\centering {
\newlength {\gizmidy}\se...
...re=eps6/bighead/2dbemph.eps, width=\gizmidy} }
}
\vspace{-10pt}
}
\end{figure}

Before showing renderings using our two dimensional opacity functions, we display in Figure 6.11 the results of the $ p(v,g)$ calculation (from Equation 5.12), as well as a new boundary emphasis function $ b(x)$. The new boundary emphasis function has a narrower peak so that we can better differentiate the regions in $ \alpha (v,g)$ that correspond to the different boundaries. The $ p(v,g)$ shown is based on a new histogram volume which includes more of the range of gradient values than the one used in the previous figures16.

Just as inspection of $ p(v)$ graphs provided information about the boundaries in a volume which could be displayed with one dimensional opacity functions, the graphical representation of $ p(v,g)$ serves as a visual summary of the boundaries which can be rendered using a two dimensional opacity function. For instance, the long black streak near the center of $ p(v,g)$ is the indication of the tissue-bone boundary. Bone takes on a range of values in the CT scan because its radio-opacity is not constant. The gradient magnitude at the midpoint of the tissue-bone boundary varies in proportion with the bone value, since the soft tissue radio-opacity is more constant. Thus the black streak, marking the middle of the boundary, slants towards higher data values as one moves upward along the gradient magnitude axis.

Figure 6.12: Renderings of CT head with two dimensional opacity functions. In (a), the initially generated $ \alpha (v,g)$ shows the air-skin boundary. With minor editing (b), the gauze and surrounding material is cleared. Careful removal of the lowest boundary curve region reveals the tissue-bone boundary (c).
headrend1.jpg

A great deal can be learned about the structure of a dataset through experimentation with the two dimensional opacity function $ \alpha (v,g)$ generated from the histogram volume. Figure 6.12 demonstrates this for the main structural components of the CT head by showing opacity functions and the renderings which they produced. Figure 6.12(a) shows the initial $ \alpha (v,g)$ as calculated from Equation 5.13. No adjustments were needed to produce the renderings. We can see the gauze strips very clearly, but the sides of the head are obscured. By removing some of the opaque regions (Figure 6.12(b)) from $ \alpha (v,g)$ at low data values and low gradient magnitudes, the gauze can be completely removed from the rendering without disturbing the air-skin boundary. The precise editing of $ \alpha (v,g)$ needed to achieve this effect was guided by the $ p(v,g)$ image. In Figure 6.12(c), the air-skin boundary is removed, revealing the surface of the skull.

So far, we have shown that the semi-automatically generated two dimensional opacity functions succeed in capturing the boundaries in the dataset, and that minimal editing of the opacity function is needed to see the main boundaries. Thus, our method is at least as powerful as Levoy's, because we were able to visualize the same boundaries, but without needing to know the CT values for the materials beforehand. Furthermore, adjustments to the boundary emphasis function can be used for fine control of the rendered boundary appearance.

However, there is one last boundary in this dataset which was never visualized in Levoy's paper. Although disallowed by Levoy's own material adjacency restrictions (Section 5.4.2), there are boundaries between bone and air in the dataset. More precisely, in the skull's various sinus cavities, there are boundaries between bone and air which contain only a thin intermediate layer of mucus membrane. Because of the resolution of this particular CT scan, the measured boundaries of the sinus regions effectively span the data values for air and bone directly, thus the boundary can be selected with the right two dimensional opacity function. The tissue-bone boundary can be removed from the rendering with a simple change in the opacity function (Figure 6.13(a)), revealing the previously unseen bone-air boundary within the skull. Figure 6.13(b) shows the same boundary from another viewpoint, and a transparent layer of the air-skin boundary has re-introduced for reference. The shape of the frontal nasal cavity (above the eyes) is especially easy to discern. Also visible is are the mastoid air cells, a spongy region of the temporal bone in the skull, near the ears[Moo85].

Figure 6.13: Rendering of CT head dataset displaying the air-bone boundary. (a) shows the opacity function and renderings, using the same viewpoint as in Figure 6.12. The rendering in (b) uses the same viewpoint as in Figures 6.8 and  6.9, and some of the air-skin boundary has been reintroduced.
headrend2.jpg

Because of where it lies in $ (v,g)$ space, the air-bone boundary can not be visualized with any one dimensional opacity function, since the soft tissue surrounding the skull would obscure it. Also, it can not be visualized with Levoy's method for region boundary display, because he is essentially using a one dimensional opacity function followed with a scaling by the gradient magnitude (recall Figure 5.12). The ability to see the air-bone boundary is more an indication of the potential power of two dimensional opacity functions in general, than it is a specific demonstration of our method's effectiveness. The information captured in the histogram volume, and made visible in $ p(v,g)$, provided the guidance in editing the $ \alpha (v,g)$ function needed to reveal the boundary.


Footnotes

... page13
ftp://www-graphics.stanford.edu/pub/volpack/data/head/
... itself14
Along the X axis, we use voxels 13 through 196 inclusively; along the Y axis, 2 through 248.
... function15
For instance, the popular shear-warp volume rendering algorithm suffers from this problem because it relies on bi-linear interpolation within the volume instead of tri-linear interpolation.
... figures16
The new histogram volume has a size of $ 256^3$ and includes first derivative values zero through 85.8. The $ g_{thresh}$ used for the $ p(v,g)$ calculation was zero.

next up previous
Next: Spiny Dendrite (hippocampus): Experimenting Up: Results Previous: Engine Block: Effectiveness of