Comparison of Reconstruction Filters

In order to evaluate the quality of a reconstruction filter, Marschner and Lobb have defined a test signal [29]:


\begin{displaymath}
\rho (x,y,z) = \frac{{1 - \sin (\frac{{\pi z}}{2}) + \alpha (1 + \rho _r (\sqrt {x^2 + y^2 } ))}}{{2(1 + \alpha )}}
\end{displaymath} (5.1)

where


\begin{displaymath}
\rho _r (r) = \cos (2\pi f_M \cos (\frac{{\pi r}}{2}))
\end{displaymath} (5.2)

They sampled this signal on a $40 \times 40 \times 40$ grid in the range $-1 < x,y,z < 1$, with $f_M = 6$ and $\alpha = 0.5$. This signal has the property that a significant amount of its energy lies near the Nyquist frequency making it a very demanding filter test.

We use this function to evaluate the reconstruction quality of our system. We support gradient estimation using Neumann's method [38], central differences, and intermediate differences. Either first-order interpolation (trilinear interpolation) or zero-order interpolation (nearest neighbor) is used for function value and gradient. Additionally, we support using filtered values computed by Neumann's 4D linear regression approach instead of the actual density value. In Figure 5.6, we apply these reconstruction techniques to the Marschner-Lobb function sampled on different grid sizes and compare them with an analytic evaluation of the function and its derivative.

The effects of the different gradient estimation methods on real datasets can be seen in Figure 5.7. Neumann's method produces less fringing artifacts than the other methods. Also note that using the filtered density value causes some details to disappear. While this effect might be beneficial to the visual appearance of the image, this typically cannot be tolerated in medical environments.

Figure 5.6: Comparison of reconstruction methods using the Marschner-Lobb test signal. (a) analytic evaluation. (b) zero-order interpolation, intermediate differences gradient. (c) zero-order interpolation, central differences gradient. (d) zero-order interpolation, Neumann gradients. (e) first-order interpolation, intermediate differences gradient. (f) first-order interpolation, central differences gradients. (g) first-order interpolation, Neumann gradients. (h) first-order interpolation, Neumann gradients and filtering.

$32 \times 32 \times 32$
\includegraphics[width=2.5cm]{results/images/32x32x32_original.eps} \includegraphics[width=2.5cm]{results/images/32x32x32_nearest_intermediate.eps} \includegraphics[width=2.5cm]{results/images/32x32x32_nearest_central.eps} \includegraphics[width=2.5cm]{results/images/32x32x32_nearest_neumann.eps}
(a) (b) (c) (d)
\includegraphics[width=2.5cm]{results/images/32x32x32_linear_intermediate.eps} \includegraphics[width=2.5cm]{results/images/32x32x32_linear_central.eps} \includegraphics[width=2.5cm]{results/images/32x32x32_linear_neumann.eps} \includegraphics[width=2.5cm]{results/images/32x32x32_linear_filteredneumann.eps}
(e) (f) (g) (h)
       

$40 \times 40 \times 40$
\includegraphics[width=2.5cm]{results/images/32x32x32_original.eps} \includegraphics[width=2.5cm]{results/images/32x32x32_nearest_intermediate.eps} \includegraphics[width=2.5cm]{results/images/32x32x32_nearest_central.eps} \includegraphics[width=2.5cm]{results/images/32x32x32_nearest_neumann.eps}
(a) (b) (c) (d)
\includegraphics[width=2.5cm]{results/images/32x32x32_linear_intermediate.eps} \includegraphics[width=2.5cm]{results/images/32x32x32_linear_central.eps} \includegraphics[width=2.5cm]{results/images/32x32x32_linear_neumann.eps} \includegraphics[width=2.5cm]{results/images/32x32x32_linear_filteredneumann.eps}
(e) (f) (g) (h)
       

$64 \times 64 \times 64$
\includegraphics[width=2.5cm]{results/images/32x32x32_original.eps} \includegraphics[width=2.5cm]{results/images/32x32x32_nearest_intermediate.eps} \includegraphics[width=2.5cm]{results/images/32x32x32_nearest_central.eps} \includegraphics[width=2.5cm]{results/images/32x32x32_nearest_neumann.eps}
(a) (b) (c) (d)
\includegraphics[width=2.5cm]{results/images/32x32x32_linear_intermediate.eps} \includegraphics[width=2.5cm]{results/images/32x32x32_linear_central.eps} \includegraphics[width=2.5cm]{results/images/32x32x32_linear_neumann.eps} \includegraphics[width=2.5cm]{results/images/32x32x32_linear_filteredneumann.eps}
(e) (f) (g) (h)

Figure 5.7: Comparison of gradient reconstruction methods. (a) first-order interpolation, intermediate differences gradient. (b) first-order interpolation, central differences gradients. (c) first-order interpolation, Neumann gradients. (d) first-order interpolation, Neumann gradients and filtering.

\includegraphics[width=3cm]{results/images/schaedel_big_intermediate.eps} \includegraphics[width=3cm]{results/images/schaedel_big_central.eps} \includegraphics[width=3cm]{results/images/schaedel_big_neumann.eps} \includegraphics[width=3cm]{results/images/schaedel_big_filteredneumann.eps}
\includegraphics[width=3cm]{results/images/schaedel_zoom_intermediate.eps} \includegraphics[width=3cm]{results/images/schaedel_zoom_central.eps} \includegraphics[width=3cm]{results/images/schaedel_zoom_neumann.eps} \includegraphics[width=3cm]{results/images/schaedel_zoom_filteredneumann.eps}
(a) (b) (c) (d)