![]() ![]() |
As an example, if a lower slice extended in the x direction 4 units more than the slice above it, one would get a flat surface for 3 of those 4 edges with the 4th edge finally sloping upwards to meet the slice above it. For a mechanical part, this might be acceptable, but for a human organ, sharp angles and flat surfaces are not the norm. A better approximation would be to 'connect the dots' from the lower slice to the upper where all 4 edges slope upwards.
The above phenomenon is complicated by the fact that for the Visible Human Male, the units of dimension in the x,y and z directions are not uniform. If x and y are the dimensions of a slice, each unit is 1/3 of a mm. The z axis or slice to slice dimension is 1 mm. This makes the stepping in the z-direction more dramatic and visible.We use a variation of Laplacian smoothing [23] The mesh for the Vesalius project is stored as a series of vertices, edges and faces. The structure used to denote the connectivity of the mesh is a winged-edge structure first defined by Baumgart. Let V be a set of vertices on the mesh. The neighbor vertices of a vertex v in V are all vertices that have a common edge with v. Using the winged-edge structure, the neighbors of v (Nofv) are found by finding the surrounding faces, then surrounding edges of V. The neighbor is connected to v on the surrounding edge.
The overall smoothing sub-program is defined in the following pseudo-code segment:
for each body in the mesh
C = MAX_C
for smoothing iterations
1..NI
for each vertex v in the body
find all Nofv
compute the average position of Nofv
multiply by C
subtract from v to get v'
replace position of v with position of v'
end for each vertex
C = C - dC where dC = C/NI
end for each iteration
end for each body
where NI is set at 500 iterations. MAX_C is set at .5. The total amount of change was regulated by making C smaller after each iteration.
Since the Z coordinate showed the stepping
affects the most, only the position of the Z coordinate was smoothed.
The X and Y coordinate where held constant. An initial implementation of
this algorithm had a tendency to 'smooth-away' the top-most and bottom-most
slices of the object. By holding the top and bottom slices of the object
constant, this effect was minimized. In Figure 2.
and Figure 3., we can compare a 3D model of the
Visible male heart obtained with our algorithm without smoothing and 3D
model of a grouping of the Visible male bladder, prostate and urethra with
smoothing, respectively.