From the equations above we can derive the formulas:
X s anis, - x9)* Ana; - yo)- Ansc * Xo
Yon -x,)* Arai; - yo)- Arc * Yo (1b)
£ = Arab — xo)+ Ary (v; - yo)- Anc * Zo
where c calibrated focal length
X, Y, Z 7 object point
X», Yo, Zo = projection centre
X; y; ^ image point
Xo, yo principal point
R, rj 7 rotation matrix
A = scaling factor
Following the rules of central projection, each pixel has it’s
individual scale factor À, depending on the point’s distance from
the projection centre. In our algorithm, we use this scale factor
as a variable to loop along a line of sight into object space.
First, we define a very rough minimum and a maximum A for
each corner of the entire voxel cube as the loop limits. For
means of speed optimization we start the loop with rather large
steps, which will be decreased as soon as the ray of sight hits an
opaque voxel. This way the loop quickly enters the bounding
cube, but slows down to make sure that every foreground voxel
is met. Every opaque voxel encountered on the ray of sight is
stored in a list.
Each processed voxel is projected into the second image, using
the below well known collinearity equations. This is the inverse
transformation compared to the tracing of pixels into the cube.
X dace Ry (X - X9)* Ra(Y -y)- Ra(Z - Zo) Q)
Ry (X = Xo) + Rs (Y - Y9)- R3(Z - Zo)
m R(X = Xo) + R5 (Y - )- Ra(Z - Zo)
4; > Vo €
Rız(X — Xo)+ Ra3(Y -Y9)- R3(Z - Zo)
Only surface voxels should represent the similar regions when
they are projected into the images they are visible.
Consequently, non corresponding image points do not represent
a surface voxel. So the decision of a voxel being on the surface
of the object or not is made by the correlation coefficient,
applied to a matrix around the projected image points.
A normalized cross correlation is used, since its results range
from -1 to +1. Differences in brightness and contrast of the
image pairs are taken into consideration. The following
computer optimized equation is used to correlate the
corresponding pixels.
. ,—n:g,.£,
= LE WE, b
oz BE, Wk mE)
Since the images contain full 24-bit color information, the
above equation would waste information when applied to the
gray value, only. Two ways have been investigated to exploit
the full information. First, all three color channels have been
inserted into the correlation vector, resulting in one single
similarity value. The other approach calculates each channel
seperately and allows individual assassment. A mean value of
the three channels gives a general similarity value, like the first
approach.
Correlation is based upon texture information, so in
homogeneous regions a correlation coefficient will give a false
result, since it always returns a high correlation factor.
Consequently, it is not wise to perform cross correlation in
homogeneous regions. However, in color images apparently
uniform areas may vary in their seperate color channels. For
example a dark blue cross on a slightly lighter blue background,
will look rather uniform if this image is grayscaled, since the
blue channel has a low weight in the grayscaling process. Green
and red channels may be entirely empty, except for noise. But
looking at the channels seperately, the blue channel will clearly
reveal its texture. Experiments show that a weighted mean value
of the three channels gives a reliable result. We based this
weighted mean value upon the standard deviation of the gray
values in the individual channels. So the color information in
the search matrix is enhanced by less considering low textured
channels.
When all the pixels on the epipolar line are correlated, ray
tracing stops and the voxel with the maximum correlation value
in the ray of sight is assigned it's corresponding color value and
the previous voxels recorded in the list are marked to be deleted
from voxel space. (see Fig.7)
Ea f j »
Figure 7. Carving voxel space according to image correlation.
—172—