VM w=? = I od I €
Picture 4: Verified straight lines of some front panels.
All straight lines above a minimal length of 10 pixels
have been verified successfully. Actually, the algorithm
does not distinguish between edges with the same
direction and different orientation. So the opposite
boundaries of a very small hole are indistinguishable
without further model information. This happens at the
little screw wholes with an extension up to 6 pixel. The
verification of larger primitives is invariant under
rotation and translation.
fJ
Picture 5: Verified straight lines of a rotated object.
7. VERIFICATION OF CIRCLES AND LINES
Straight line verification is organized as contour
following of pixels with constant direction. Circles and
arcs have no such simple direction features. Their
generation algorithms may be classified as raster
oriented approaches for creating the "true" line and
those interpolating the shape by polygons, Bezier-
curves, B-Splines etc. Disadvantages of both approaches
are well known in computer graphics. The raster
oriented approach needs new primitives which usually
demand different data structures and algorithms e.g.
extended clipping, transformation and projection
algorithms. These operations may map a primitive type
to a new one and the circle and arc generation
algorithms can not prevent the necessity for higher
ordered curve interpolation. The interpolation approach
just looks for a curve approximation. Obviously, this
approach is more efficient than the raster-oriented on. It
is a useful alternative if its precision is acceptable and is
applied here.
P1 P2
Picture 6: Circle approximation by direction segments.
The segments created in the direction image are already
an approximation of the curve (picture 6). Although the
curve is given by a set of discrete pixels located on the
curve to be approximated the pixel values classify them
as straight line points. In this way circle verification is
reduced to the verification of a set containing straight
lines. The verification is always done clockwise. When
reaching a new line, the direction code is incremented.
FUNCTION verify. circle (ModelCircle, PictureCircle)
BEGIN
initialize i
calculate start point Pi
increment i
DO
calculate the next point Pi
verify line (line(Pi-1, Pi),PictureLine)
increment i
WHILE( < 360/MINANGLE)
approximate PictureCircle
compare ModelCircle with PictureCircle
END
Algorithm 3: Circle verification using an interpolation
approach.
Picture 7 states the results of processing circles of
different size. All circles with a diameter larger than 20
pixels can be verified successfully. Smaller ones fall
short of the minimal region size for straight line
approximation.
Picture 7: Results of circle verification using an
interpolation approach based on 8 straight lines. The
circle diameters lie within 30 to 85 pixels.
Arc verification follows a closely related way. Instead of
a fixed start point the first and last point have to be
calculated by the circle equation. Additionally all
involved sectors are determined.
Pn
P2
Pi
Picture 8: Arc verification where M - (8,8), r = 5, alpha =
202,5 and beta = 112,5 based on 8 interpolating straight
lines.