Volume Visualization II





I.  Differential Properties

Certain medical imaging tasks require the differential properties of a surface of interest, some registration algorithms for instance.  This first section examines the calculation of principal curvatures, principal directions and normals.  The principal curvatures are computed by first calculating the mean and gaussian curvatures; both requiring 2nd order surface differentiation.
 

Figure Directory
1) Torus Normals
2) Torus Maximum Curvatures
3) Torus Minimum Curvatures
4) Torus Maximum Curvatures on -.5 level-set
5) Torus Minimum Curvatures on -.5 level-set
6) Bone Normals
7) Bone Maximum Curvatures
8) Bone Minimum Curvatures
9) Bone Maximum Curvatures on -.5 level-set
10) Bone Minimum Curvatures on -.5 level-set
Part A: Saddle Points
11) Torus Normals at Saddle-Points: View 1
12) Torus Normals at Saddle-Points: View 2
13) Torus Normals at Reduced Saddle-Points: View 1 (See discussion)
14) Torus Normals at Reduced Saddle-Points:  View 2 (See discussion)
15) Torus Maximum Curvatures at Saddle-Points
16) Torus Minimum Curvatures at Saddle-Points
17) Bone Normals at Saddle-Points:
18) Bone Maximum Curvatures at Saddle-Points
19) Bone Minimum Curvatures at Saddle-Points
 
 

Normals


 

Maximum Curvatures

Minimum Curvatures

Maximum Curvatures on -.5 level set

Minimum Curvatures on -.5 level set


 
 

Normals

Maximal Curvatures


 

Minimum Curvatures


 

Maximum Curvatures on -.5 level-set


 

Minimum Curvatures on -.5 level-set


 
 
A.  Differential Properties at Saddle Points
 
 

Normals at Saddle Points


 

Normals at Saddle Points


 

Normals at Reduced Saddle-Points

Normals at Reduced Saddle-Points


 

Maximum Curvatures at Saddle Points


 

Minimum Curvatures at Saddle Points


 

Normals at Saddle Points


 

Maximum Curvatures at Saddle Points


 

Minimum Curvatures at Saddle Points

Discussion: The plots are self-explanatory.  However it should be noted that because of numerical errors (need to calculate second derivatives in the form of central differences), many curvatures are calculated as negative when indeed they are not.  These errors propagate and produce erroneous results when finding the saddle points (where the product of the principal curvatures is less than zero).  As an aid to this problem, one can set a negative epsilon that the curvature product must be less than rather than zero.  The figures with reduced saddle-points are examples of this modification.
 

Code:
calculateCurvatures()
findSaddles()
 

 
II.  Surface Smoothing
Certain Medical Imaging applications require computations that are sensitive to discontinuities and sharp changes.  It is therefore often necessary to smooth a surface before further computation can continue.  Object registration is one such task.  Two smoothing techniques are examined in the proceeding examples.
 
 

A.  Level-Set based Smoothing
 
 

Level-Set based smoothing

Original
Image
1 Iteration
5 Iterations
10 Iterations
20 Iterations
50 Iterations

 

Level-Set Based Smothing

Original Image
1 Iteration
5 Iterations
10 Iterations
20 Iterations
50 Iterations

 
 
 

B. Taubin's Algorithm

Taubin's algorithm is based on ideas from signal processing.  The algorithm is not level-set based but rather implements, in effect, a low-pass filtering of the vertices, where high frequency content is equivalent to rapid changes in neighboring vertices.  The main contribution of this method to other "vertice averaging" techniques is the addition of an inflation step that removes the characteristic shrinking effect of many smoothing techniques.

Taubin's Algorithm

Original Image
1 Iteration
5 Iterations
10 Iterations
20 Iterations

 

Taubin's Algorithm

Original Image
1 Iteration
5 Iterations
10 Iterations
20 Iterations

 

Taubin's Algorithm without Inflation Step

Original Image
1 Iteration
5 Iterations
10 Iterations
20 Iterations
50 Iterations
Code:
taubin()
Example:  taubin(data,srf,rot1,rot2,lambda,mu,levelSet,iterations,reduce)
data - dt surface
rot1,rot2 - display rotation values (45,30)
lambda - smoothing scale-factor (between 0 and 1)
mu - inflation scale-factor (between 0 and 1)
levelSet - 0
iterations - number of smoothing iterations
reduce - used reduced number of vertices (1 or 0)

For this experiment lambda,mu = .6307,-.6732

Discussion/Comparison
 

Level-Set Approach

The level-set approach is a very fast algorithm and is not nearly as sensitive to the size of the data as is Taubin's method, which is completely dependent on the number of vertices.  The level-set approach, though, has the distinct shrinking side-effect characteristic to many smoothing techniques.  It is easy to see from the examples above that even after 5 iterations, the size has been visibly decreased.  It should also be noted how the shrinking in the level-set approach is not uniform.  Protrusions disappear much quicker, and the shape quickly degenerates to an ellipsoid upon high number of iterations.

Taubin's Algorithm

While still a very fast algorithm, it quickly becomes bogged down as the number of vertices increase, as the second data set made evident.  Twenty iterations took approximately 45 minutes to complete on the second data-set (Note however, that much of the time is spent in defining neighborhoods from the vertice/face format that matlab produces.  It could be made much more efficient by incorporating that into the triangulation procedure.)  As remarked upon at the beginning of this section,  the most significant contribution of Taubin's algorithm is its ability to smooth a shape without incurring the characteristice shrinking.  This is achieved by a second step that inflates the shape in the opposite direction in which it was smoothed.  The shape avoids returning to the jagged original because the inflation step is run on the new smoothed vertices.  The above examples illustrate that the shape does not shrink appreciably under high iteration smoothing.  Another thing to note is that the surface not only does not change size but the shape is maintained much better as well.  This is because the smoothing is more uniform then the level-set based approach.  This can be seen in the last set of figures.  For this set I turned off the inflation step and let the shape shrink.  Note that the shape shrinks in a different manner than the level-set based approach; it maintains its protrusions for longer.  The shape doesn't degenerate to an ellipsoid, but rather holds onto its underlying shape.  One last thing to note is that Taubon's method actually converges and no appreciable smoothing gained after 10 iterations.  Note also that it actually begins to go the other way.  If one looks closely at the difference between the 10 and 20 iteration examples for the first data set, one can convince themselves that the 20 iteration example is actually less smooth.  This is because the algorithm has converged and the fact that I used an inflation term slightly greater than the smoothing term allows the algorithm to actually begin to move in the other direction after the algorithm has converged.  The ability for Taubin's algorithm to smooth without shrinking and maintain underlying shape makes it a very useful algorithm.