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 PointsDiscussion: 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.
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
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.Code:
A. Level-Set based Smoothing
Level-Set based smoothing
Original
Image1 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
Example: taubin(data,srf,rot1,rot2,lambda,mu,levelSet,iterations,reduce)Discussion/Comparison
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
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.