487
The International Archives of the Photogrammetry, Remote Sensing and Spatial Information Sciences. Vol. XXXVII. Part B4. Beijing 2008
Figure 2. 1:25.000 scaled map produced with suggested work
flow.
3.1 Semi-Automatic Feature Extraction Software
The semi-automatic feature extraction software thus developed
is based on level-set and image segmentation algorithms. There
are three problems during the design process. The first problem
is to start the algorithm. This is solved by pointing to any pixel
on the feature that will be drawn by the operator. Thus, the level
cluster algorithm can start from the point that operator selects.
This solution makes the approach semi-automatic.
The second problem is to decide the criteria for drawing process
will continue from pointed node or not. It is solved by using the
color values of pixels which constitute the raster image. The
color value of the pointed node or the mean color value of
neighboring pixels, according to a defined neighborhood degree,
are compared and the algorithm is continued if the value
difference is smaller than tolerance value or stopped if the value
is bigger than the tolerance value. In other words, segmentation
is carried out according to the color differences of pixels. After
determining the feature and completing the pointing works the
feature must be obtained as vector data and so transformation
from raster to vector data is effected.
The semi-automatic feature extraction program that solves three
problems mentioned below consists of 5 main stages. These
stages are:
• Selection of the point or pixel of a feature that will be
extracted by the operator,
• Making the image segmentation of a selected pixel by using
the color differences with the neighboring pixels,
• Propagation of segmentation and storing in heap sort
format by using level-set method
• To get 1 bit (black or white) raster mask data from those
pixels.
Automatic extraction of features in a known vector format by
using raster to vector conversion tool on the raster mask data.
The first four steps were implemented by coding in the Borland
C++ programming language without using any libraries except
for system libraries. The fifth step was implemented by using an
open source code which was found on internet. The code was
revised in Visual C++ language. Effectively, the entry of vertex
tolerances and comer coordinates became possible. (Eker, 2006).
3.2 Image segmentation algorithm
Image segmentation depends on the color differences between
pixels. A tolerance value is entered to increase flexibility by the
operator. Therefore, by increasing the tolerance value in high-
contrast-images, the operator will have the capability of
digitizing large area by in one operation. The initial value for
the segmentation algorithm is determined as 2 multiplied by the
width multiplied by the height of the image.
Segmentation starts by marking first point of the feature. The
mean value of that pixel and neighbouring pixels according to
neighbouring level is determined as the reference color value. If
the neighbouring level is 0, the value of pixel; if the
neighbouring level is 1, the mean of the pixel and neighbouring
8 pixels’ values is determined as beginning value (Eker, 2006).
When calculating differences between the color value of
reference points and neighboring pixels, color differences in
three bands (red, blue and green) are calculated separately and
examined if they are lower than the threshold value.
3.3 Propagation by level group and storage
The starting value needed for propagation by the level-set
algorithm or for moving ahead through a feature is met by the
semi-automatic nature of the developed algorithm. Propagation
of the surface will begin from the pixel that is marked by the
operator and the zero level-set function is defined by the
location of this pixel.
The other component needed for level-set function is the
threshold value which controls the propagation. The solution for
threshold values is realized by calculation of color differences
that is mentioned above.
After starting the propagation a solution for the problem of the
direction in which it will continue through the pixels satisfying
the threshold values, remains. A high speed algorithm is
beneficial in solving this problem. The functioning can go on
propagating from the pixel which has the smallest value
(Sethian,1998). But what will the smallest value describe?
In the developed algorithm, for the question of what the
smallest value would represent, the first pixel marked by the
operator is accepted as a zero level group function and every
neighboring pixel (the first pixels in west, east, north and south
direction) is checked by the color difference algorithm
described above and for the pixels that meet the condition, the
distances from the zero level group (first marked pixel) are
calculated and in this way the continuation of propagation
through pixels with the shortest distance of separation is
provided.
For the completion of the propagation, updates have to be done
(Sethian,1998). In an update procedure algorithms for the
calculation of distance squaring are used (Sethian,1998)
Minimum mass structure (heap sort) is used for storage and
communication of marked pixels. In minimum mass structure
the smallest image cell is on the top. Some functions are needed
to protect the heap sort: Adding the image cell to the heap,
making the image cell stable in the heap, taking out the image