• No results found

Chapter Eight: Voxel Display

This chapter presents a brief survey o f various methods o f visualising voxel data. Simple 2D slice methods, the fitting o f polygonal mosaics to the data, and display methods which work directly with the voxels are described. A new polygonal mosaic technique is presented and the limitations o f polygonal approaches are demonstrated. 8.1 Slice methods

Conventional two dimensional methods of display, applied to voxel data, play an important role in medical imaging. Arbitrarily oriented slices through the data can be viewed as 2D images. As Webb points out "For most clinical applications, the advan­ tages of viewing tomographic information are self-evident and outweigh the perceptual disadvantages associated with the need to search through sets o f d ata".t As a result, at least for the time being, 2D projections and slices through 3D data are techniques which are here to stay.

Another simple 2D display method is to generate pseudo x-rays. For example, a voxel data set can be compressed to a two dimensional image by summing all voxel values along a particular axis. The corresponding 2D counterpart would be the compression of an image into a one dimensional scan line. Typically though, such a compression is not desirable by itself, since significant depth information has been lost, although its use is conceivable in conjunction with other methods.

Given the simplicity o f 2D display methods, their derivation and use are not con­ sidered further here. Rather a jump is made to a survey o f methods o f encapsulating the three dimensional nature o f the data within the display technique.

8.2 T rian g u latio n

Construction o f approximate three-dimensional surfaces defined by parallel planar contours is useful in applications such as medical and industrial image processing [Christiansen78] and [Ganapathy82]. In particular it has become the defacto method for design and construction of custom prostheses [Granholm87] and [Rhodes87]. This section presents several published triangulation heuristics. Unfortunately, in order to

produce good results, these heuristics require a high degree o f correspondence between contours to be connected. Current heuristics, although efficient in terms o f computa­ tional complexity, require both a fair amount of floating point calculation and accurate guessing o f the correct starting point. In the case o f the latter, if non-matching starting points are chosen, the resulting surface will be incorrect. We present a new triangula­ tion method working directly from chain codes, which requires neither floating point calculations nor prior starting point selection. The method uses a pattern recognition approach, where similarities in contour features are used to select specific regions to be tiled together, falling back on a heuristic to tile the remaining points when no pattern matching information is available.

8.2 . 1 D efinitions

The problem o f triangulation can be defined as the construction o f a three- dimensional surface, approximating an unknown surface, which is defined by a series of successive near-parallel, closed, planar contour curves. Triangulation then requires as input at least two successive near-parallel planar contours known to belong to the same surface. The region constraining triangulation algorithm presented works on contours, defined by eight-connected run-length encoded chain code, which have been previously derived and are known to successively define a three-dimensional surface.

start

\

C = {4,5,4,6,8,8,8,2,2}

R = {< 1,4>,< 1,5>,< 1,4>,

<1,6>,<3,8>,<2,2>}

F ig u re 8.1 Contour with chain code and run-length encoding.

{ ) set < > tuple

[ ] list, or sequence

A chain code is defined to be a sequence o f line segments defined by a fixed set of possible directions, together with a starting point. The chain code used is eight- connected in that there are eight possible directions which can be used. A four- connected chain code would also suffice. A run-length encoded chain code is defined to be a sequence o f pairs ( < length, direction > ), which is derived by compressing the chain code (see Figure 8.1). A feature is a direction in the run-length encoded chain code, and a region is a consecutive sequence o f features. A contour is a closed curve lying in a plane which is defined by a sequence o f 3-D points, or in the case of this algorithm, is defined by a closed, run-length encoded, chain code sequence. Contours are to be connected together by tiles. A tile is a triangle consisting o f two distinct spans and one contour segment (see Figure 8.2a). A span P xQj is defined to be a line segment connecting two contours defined by its endpoints P, and Qj. A contour seg­ ment PiPi+m\ (or QjQj+n \ ) is a line segment corresponding to a run-length encoded tuple, which is just a line segment along a contour defined by its endpoints P x and P,-+mi (or Qj and Qj+n\) where +x is addition modulo x.

An acceptable surface is defined to be a surface created by connecting two con­ tours with tiles, such that each tile intersects in exactly one span with the tile on its immediate left and exactly one with the tile on its immediate right, and does not inter­ sect any other spans. In other words, for a surface to be acceptable, no span can be shared by more than two tiles, and each contour segment is unique to exactly one tile (see Figure 8.3). The goal of triangulation then can be defined as constructing an acceptable surface between a sequence o f contours.

It should be noted though that the goal o f producing an acceptable surface makes no statements with regards to its quality or accuracy with respect to the initial data. As will be shown later, acceptable surfaces are not always visually pleasing.

8.2.2 Toroidal graph representation

Keppel published the first solution to the triangulation problem [Keppel75]. He introduced the notion of triangulation as a toroidal graph walking problem as follows.

Consider two successive contours

P = [ P t], 0 < / < m- 1

Contour Segment Contour m-1 i+ 1 n- 1 Span Graph Representation i+ 1 a

F ig u re 8.2 Contour segments, spans, and graph representation.

Acceptable

Not Acceptable

The set of all possible acceptable surfaces for triangulation of P and Q can be thought of as a directed toroidal graph G [V, A ] (see Figure 8.4) where V is its set o f vertices, and A its set o f arcs. A vertex Vij of G corresponds to a span between points P t of the first contour, and Qj o f the second. Thus an arc o f the graph corresponds to a tile of the surface between the contours. Thus

V = {Vy I 0 < i < m -1 ; 0 < j < n -1 } , and

A = {<Vki , Vst> I either s=k and t=l+n l, ors= k+ m l and t= l}. (1)

1 o J n- 1 - II u i m- 1 1 1 1 1 11 1 t | 1 11 | | 1 1 1 I 1 1

F ig u re 8.4 Toroidal graph representation.

W ith this in mind, triangulation has been reduced to a graph walking problem. For theorems and properties o f G [V, A ] in the domain o f triangulation see [Fuchs77].

Keppel showed that the number of possible acceptable surfaces S ( m , n) is

where every acceptable surface consists o f m +n arcs. S (m , n ) becomes successively larger the more detailed the contour curves, because as the num ber o f features increase for a contour, so does the number of defining points required. Computational com­ plexity o f the previous form has been the underlying assumption in the search for better triangulation heuristics, and thus it has been considered undesirable to generate all possible surfaces, selecting one from among them based on some criterion.

Since generation and evaluation of all possible acceptable surfaces is often too costly, heuristics have been proposed which produce a particular path from G [V , A]

based on either local or global decision making. These heuristics can be grouped into two categories, those requiring only local information in decision making, and those requiring global information in decision making.

For the following discussion, assume that somewhere in the process o f triangula­ tion we are at vertex Vy of G [V, A ] and a decision must be made as to which arc to choose in selecting the next vertex. Since we are dealing with clockwise traversal of the contours, the decision is one of selecting either the vertical arc (in the toroidal graph) incident to choosing contour segment P ,P t+mi and span Pi+miQj, or the horizontal arc incident to Fi j + b 1 choosing contour segment Q j Q j + n\ and span