Full text: New perspectives to save cultural heritage

CIPA 2003 XIX 11 ' International Symposium, 30 September - 04 October, 2003, Antalya, Turkey 
For instance, an 18-connected line could intersect an 18- 
connected surface without detection. An algorithm for a 6- 
connected line can be found in (Amanatides and Woo, 1987). A 
comparison of the two line types is displayed in figure 6. 
voxel is visible. Whether lying on the backside, or occluded by 
another voxel, the algorithm will correctly tell if the voxel is 
visible or not. 
The basic idea is depicted in Figure 7. 
Figure 6: 6- and 18-connected 3D-lines. 
The algorithm for the 18-connected line can be described by the 
following pseudocode: 
function linetracing (P0=start, Pl=end) 
{ 
let dx = PI.x - PO.x 
let dy = PI.y - PO.y 
let dz = Pl.z - PO.z 
let maxien = MAX[ABS(dx), ABS(dy), ABS(dz)] 
let sx = dx / maxien 
let sy = dy / maxien 
let sz = dz / maxien 
let P = PO 
for (0 ... maxien) 
{ 
call operator with P 
P. x = P.x + sx 
P.y = P.y + sy 
P.z = P.z + sz 
} 
} 
Figure 7: Recovering visibility information 
In Figure 11 on the last page the differences of the projection 
results are displayed, based upon the decision, which voxels are 
excluded from consideration. It can also be seen, that an 
indirect transformation (the image pixel looks up the 
corresponding voxel) delivers by far the best result. 
3.5 Surface Normal Vector 
The surface normal vector can tell us in which direction a voxel 
is facing. It is the normal vector of the tangential surface from 
the voxel of interest. While in polygonal models it is very easy 
to calculate the normal vector (it is simply the cross product of 
two sides of a triangle) it becomes more sophisticated with 
voxel models. 
Our basic approach calculates a least-squares adjustment on a 
specific subset of surface voxels for the plane equation: 
3.4 Visibility Information 
It is often crucial to find out which voxel is visible in which 
image. From polygonal models we know that there are two 
reasons why a point (or a face) is not visible from a certain 
viewpoint. The first and easy case is when the point is lying on 
that side which is facing away from the camera. It is only 
necessary to calculate the triangles normal vector and check if it 
is pointing towards the camera. 
The other case is that a point is occluded by another object in 
between. The major approach creates a depth buffer, which 
stores the distances of the recently projected points. Any point 
further away is just skipped, while the buffer is updated with 
the nearest point at a time. 
As voxel techniques are very different from polygonal models, 
we cannot simply take over their algorithms. The depth buffer 
is flexible enough to apply it here as well, but we will use the 
line tracing to achieve better and faster results. 
Now, when we want to learn about the visibility of a voxel in a 
certain image, a line is defined with the voxel itself as start 
point, and the image projection centre as end point. We will use 
the line tracing algorithm to check each voxel along the line, 
whether it is background (and therefore transparent) or object 
voxel (opaque). As soon as an opaque voxel is encountered, the 
initial voxel can be considered occluded. When the line exits 
the defined voxel cube, it can be stopped, assuming that the 
a-x + b- y + c- z + d = 0 
(2) 
Therefore we define a certain radius within which we take all 
surface voxels (see figure 8) and write them into the matrix A, 
with: 
y\ 
y 2 
Z 1 
z 2 
and the unknown vector: 
a 
n x 
b 
— 
n„ 
y 
c 
U z_ 
(3) 
(4) 
Since only the direction of the tangential surface is of interest, 
not the translation offset d (see equation 3), the unknown vector 
contains only the three elements a, b and c, which directly 
correspond to the elements of the surface normal vector.
	        
Waiting...

Note to user

Dear user,

In response to current developments in the web technology used by the Goobi viewer, the software no longer supports your browser.

Please use one of the following browsers to display this page correctly.

Thank you.