next up previous
Next: Reaction-Diffusion Textures Up: Methods Previous: Lit-Tensors

Subsections

Hue-balls and Deflection Mapping


Deflection caused by Tensors

The idea underlying hue-balls is that the mapping from tensors to color should not first reduce the tensor to a vector, such as one of its eigenvectors. The intent is to maximize the continuity of the mapping across the range of possible anisotropies. Color determined by the direction of the principal eigenvector, for instance, is discontinuous in regions of low anisotropy, and even high planar anisotropy. Hue-balls color tensors according to their action as a linear operator. At all locations in the tensor field, a single user-specified input vector is multiplied by the diffusion tensor matrix to create an output vector. The tensor is assigned color by using the direction of the output vector as the lookup into a smoothly varying spherical colormap. We use the term hue-ball to describe a spherical colormap used in this way. Throughout a region of high spatial coherence in the tensor field, multiplying by the tensor will tend to give the same result, and the assigned color will be nearly uniform. Discerning coherent structures in the tensor field becomes a task of visually detecting color coherence in the rendered image. A closely analogous approach in vector visualization uses a two dimensional hue-saturation colormap on the sphere to visualize perturbation velocity in an application of direct volume rendering to computational fluid dynamics [35].

The properties of the tensor's matrix representation are important for understanding how the hue-ball functions. It is useful to consider the input vector in the basis formed by the eigenvectors. Given a tensor matrix $ \mathrm{M}$ with unit-length eigenvectors $ \mathbf{e}_1$, $ \mathbf{e}_2$, and $ \mathbf{e}_3$, an input vector $ \mathbf{v}$ can be expressed as

$\displaystyle \mathbf{v}$ $\displaystyle =$ $\displaystyle (\mathbf{v}\hspace{-1pt}\cdot\hspace{-1pt}\mathbf{e}_1\hspace{-1p...
...pace{-1pt}\cdot\hspace{-1pt}\mathbf{e}_3\hspace{-1pt}) \hspace{1pt}\mathbf{e}_3$  
  $\displaystyle =$ $\displaystyle (
\mathbf{v}\hspace{-1pt}\cdot\hspace{-1pt}\mathbf{e}_1\hspace{-1...
...pace{-1pt},
\mathbf{v}\hspace{-1pt}\cdot\hspace{-1pt}\mathbf{e}_3\hspace{-1pt})$ (10)

Then the output vector $ \mathrm{M} \mathbf{v}$ can be expressed as
$\displaystyle \mathrm{M} \mathbf{v}$ $\displaystyle =$ $\displaystyle \mathrm{M} (\mathbf{v}\hspace{-1pt}\cdot\hspace{-1pt}\mathbf{e}_1...
...pace{-1pt}\cdot\hspace{-1pt}\mathbf{e}_3\hspace{-1pt}) \hspace{1pt}\mathbf{e}_3$  
  $\displaystyle =$ $\displaystyle \lambda_1 (\mathbf{v}\hspace{-1pt}\cdot\hspace{-1pt}\mathbf{e}_1\...
...pace{-1pt}\cdot\hspace{-1pt}\mathbf{e}_3\hspace{-1pt}) \hspace{1pt}\mathbf{e}_3$  
  $\displaystyle =$ $\displaystyle (
\lambda_1 \mathbf{v}\hspace{-1pt}\cdot\hspace{-1pt}\mathbf{e}_1...
...,
\lambda_3 \mathbf{v}\hspace{-1pt}\cdot\hspace{-1pt}\mathbf{e}_3\hspace{-1pt})$ (11)

where $ \lambda_i$ is the eigenvalue corresponding to eigenvector $ \mathbf{e}_i$. The coordinates of the output vector in the eigenvector basis are the input vector's coordinates, scaled by the corresponding eigenvalues. We term the change in direction between the input and output vectors the deflection caused by the tensor.

Equation 11 indicates that the vector is always deflected towards the principal eigenvector, since the coordinate of the input vector in the principal eigenvector direction will by definition grow proportionally larger than the components along the other eigenvectors. There is also a relationship between the amount of deflection and the tensor's anisotropy. Because the anisotropy of a tensor is in general related to the disparity among its three eigenvalues, multiplying a vector by a tensor with high anisotropy will cause a greater relative change among its coordinates, and hence a greater deflection. However, since the diffusion tensor matrix has non-negative eigenvalues, multiplying by it cannot change the sign of any of the vector's coordinates. Both the input and output vectors will be in the same octant of the eigenvector basis, so the angle between input and output vectors cannot exceed 90 degrees.

Hue-ball Color Mapping

Figure 9: Hue-ball acting on one slice of a dataset, and as used in volume rendering.
\begin{figure}\centering {
\epsfig{file=eps/Figure09.eps, width=\figwidth}}
\end{figure}

The free parameters in the hue-ball method of assigning colors to tensors are the color assignment on the sphere, and the input vector to use for multiplication with the diffusion tensor matrix. For the sake of simplicity we have used only the hue-ball mapping shown in Figure 9(a). The sphere has a band of saturated colors around its equator, with saturation decreasing to the top and bottom poles, which are a medium gray. All the colors have the same ``lightness'' in the HSL color space [13], since for the sake unambiguous visualization, it is less confusing if the hue-ball varies only in color, letting the shading model control intensity4. All the hues appear twice on the hue-ball so as to create 180 degree rotational symmetry.

To illustrate how the hue-ball colors measured tensor data, the same dataset slice which was shown in Figure 1 has been mapped by the HSL hue-ball described above and is shown in Figure 9(b). Some previous techniques for colormapping diffusion tensor data assign color based on the direction of the principle eigenvector, and then modulate the color by some scalar anisotropy measure, so that isotropic regions are suppressed. Using an appropriately chosen hue-ball mapping, with the input vector pointing to a neutral color, this happens automatically, so no anisotropy calculation is needed. Finally, a full volume rendering is shown with hue-ball coloring in Figure 9(c).

Deflection Opacity Mapping

Figure 10: Assigning opacity based on deflection, with hue-ball coloring. Next to each image is a hue-ball image which indicates its orientation, and the direction of the input vector. Maximum opacity was assigned for deflection angles around six degrees and higher.
\begin{figure}\centering {
\epsfig{file=eps/Figure10.eps, width=\figwidth}}
\end{figure}

Based on the discussion in Section 3.3.1 about the relationship between anisotropy and deflection, we have also explored assigning opacity based on the amount of deflection. This opacity assignment is controlled by two user parameters- the input vector to use, and a simple (scalar) mapping from the amount of deflection to opacity. Assuming the regions of interest are anisotropic, the mapping should give no opacity if there was no deflection, and increase opacity with the amount of deflection. Figure 10 shows how the direction of the input vector emphasizes different features according to their anisotropy orientation. Because these images use the hue-ball for coloring, their rendering did not require solving for any eigensystems. They represent the quality of image possible with most numerically inexpensive methods.



Footnotes

... intensity4
If one is seeking a truly constant luminance colormap, HSL colorspace is too simplistic.

next up previous
Next: Reaction-Diffusion Textures Up: Methods Previous: Lit-Tensors
Gordon Kindlmann 2001-09-15