The International Archives of the Photogrammetry, Remote Sensing and Spatial Information Sciences. Vol. XXXVII. Part B4. Beijing 2008
444
tolerance value determined before, algorithm is continued
otherwise it is stopped. In other words, segmentation is carried
out according to color differences.
After completing the determination of the feature wanted to be
digitized and marking process it is needed to get the feature as
vector data. Thus the data can be used in a Geographic
Information System (GIS). This was the third problem. Raster
to vector transformation was carried out to solve the problem.
Semi-automatic digitizing approach that solves those three
problems mentioned above was configured in five main steps as
the integrity of processes. This process steps are:
• The selection of starting point or pixel of the feature wanted
to be digitized by the operator.
• Performing the image segmentation of the selected pixel by
making use of color difference with neighboring pixels.
• Propagation of the segmentation by using the level set
method and storing as a heap sort.
• Getting 1 bit (1 color) masked image from those structured
pixels.
• Getting features’ vector data in a known format after raster
to vector conversion from masked image.
First four process steps were compiled using Borland C++
programming language and using no library files except for
system libraries. Fifth step was carried out by the help of a
raster to vector conversion open code that is shared in the
internet. This code was developed and compiled by using
Visual C++ programming language. Some functions like weed
tolerance and coordinated transformation tools were added to
this code.
2.1 Image Segmentation Algorithm
Image segmentation has been based on color difference and this
algorithm had been made flexible by adding a tolerance value
that could be set by operator. Thus operator can detect and
digitize large areas at one click of the mouse by giving high
tolerance value in high contrasted images. Segmentation
algorithm threshold value was determined as two times of
multiplied value of image width and length.
Segmentation is started from the selected feature point. Value
of neighboring pixels and their average value are computed as
the reference, according to pixel value and/or neighboring level
of the feature point. If neighboring value is zero, pixel’s color
value is taken on the reference neighboring level is one, color
value computed by averaging with the eight pixels around it is
taken as the reference value (Eker, 2006).
Here, color differences of the pixels in three bands (red, green,
blue) are computed one by one and searched whether each is
under the threshold or not.
2.2 Storing and Propagating With Level Set Algorithm
Starting value needed for propagation with level set or going
along with the feature is coped with by means of the semi
automatic nature of developed method. Propagation of the
surface would start from the pixel which is selected by the
operator and zero level set would be defined by the location of
starting pixel.
Another component that is needed for level set algorithm is the
limit value providing the control of propagation. Solution for
the limit was carried out by computing the color differences as
mentioned above.
Latter there had been one problem to carry out that was which
neighboring pixel would be chosen to continue fitting the limit
value. As a matter of fact in this solution of the problem Fast
Marching method may be used. The function would go on to
propagate hence the pixel that has the least value (Sethian,
1998). However, what would the least value be?
In the developed method for the question of what would the
least value represent to, the first pixel selected by the operator
is admitted as zero level set function and each neighboring pixel
(the first pixels in east, west, north, south direction) is checked
by the color difference value algorithm mentioned above and
the distance from the zero level set (first selected pixel) is
computed for the pixels fit the condition, thus diffusing is
carried on hence the pixel having the least distance.
Completing the propagation updating process should be carried
out (Sethian, 1998). For updating process quadratic equations
were used required for computing the difference (Sethian, 1998).
Minimum heap sort had been used in order to store and access
the pixels. In the structure of minimum heap sort, the image cell
having the least distance from level 0 would be at the top.
Certain structure is required for preserving the heap sort.
Adding the image cell to the heap, fixing the image cell in the
heap, being removed the image cell having the least distance
from the heap and updating the structure on the event of every
new image cell is added is required.
By means of this storing structure, effectiveness has been
increased in large volume processes such as attaining to the
image cells, testing and computing the propagation, marking the
image cells and storing the marked image cells (Eker, 2006).
2.3 Raster To Vector Conversion
Raster to vector conversion is valid for 1 bit image files which
include two types of data (0 or 1), (ESRI, 1997). By the help of
the developed software, extracted pixels from the image are
marked as colored and the others are black. This new image is
saved as a masked image in bmp format.
Open Visual C++ code shared in the internet, was developed
and compiled with adding additional functions to convert the
acquired mask image file to vector data. The center and the
border lines of the features are being converted from raster data
to vector data by the help of an interactive interface by setting
the connection with the main interface. A coordinated vector
data is gained by entering the lower left comer coordinates and
image resolution in both two dimensions (x, y) on the main
interface. Besides, entering the weed tolerance with an
interactive interface, it is possible to get vector data in desired
smoothness (Eker, 2006).
If weed tolerance is 0 all the pixels are included in calculation
without making smoothness. When the weed tolerance is
increased, pixels with increasing intervals are taken into
consideration instead of all pixels and vector data becomes