Rochester Institute of Technology
RIT Scholar Works
Theses
Thesis/Dissertation Collections
3-18-1991
Quadtree algorithms for image processing
Jim Benjamin Isaac
Follow this and additional works at:
http://scholarworks.rit.edu/theses
This Thesis is brought to you for free and open access by the Thesis/Dissertation Collections at RIT Scholar Works. It has been accepted for inclusion
in Theses by an authorized administrator of RIT Scholar Works. For more information, please contact
Recommended Citation
QUADTREE
ALGORITHMS
FOR
IMAGE PROCESSING
by
Jim Isaac Benjamin
(Sr. Project Engineer, Xerox Corporation, Webster, New York)
A Thesis Submitted in
Partial Fulfillment of the
Requirements for the Degree of
MASTER
of SCIENCE in
Computer Engineering
Approved by:
Ronald G. Matteson, Ph.D.
(Committee Chairman)
Associate Professor. Department of Computer Engineering
Stanislaw Radziszowski, Ph.D.
(Committee Member)
Associate Professor. School of Computer Science and Information Technology
Conger W. Gable, Ph.D.
(Committee Member)
Vice President. Strategy and Planning. Xerox Engineering Systems
Roy S. Czernikowski, Ph.D.
(Department Head)
Professor. Department of Computer Engineering
DEPARTMENT OF COMPUTER ENGINEERING
COLLEGE OF ENGINEERING
ROCHESTER INSTITUTE OF TECHNOLOGY
ROCHESTER, NEW YORK
TITLE OF THESIS:
Quadtree Algorithms for Image Processing.
I, Jim Isaac Benjamin, hereby grant permission to the Wallace Memorial Library of
the Rochester Institute of Technology to reproduce this thesis in whole or in part.
Any reproduction will not be for commercial use or profit.
ACKNOWLEDGEMENTS
In the
preparation ofthis
thesis,
I
received excellenthelp
from many
individuals.
Thus in
the
category
of support anencouragement, I
wouldlike
to thank
my
expectant-wife
Kay,
whokept
ourhome
running smoothly
whileI
became
possessed withthe
preparation ofthis
document.
I
would alsolike
to
extend specialthanks to
ourparentsfor sharing
their
love
with us.A
secondcategory
ofhelp
was administrative andtechnical.
I
amextremely
fortunate
to
have
worked withRonald
Matteson,
Ph.D.
(Associate
Professor,
Rochester Institute
ofTechnology,
Department
ofComputer
Engineering),
in
the
preparation of
this thesis.
His
expertisein
the
area ofImage
Processing
Algorithms
providedthe
right advisefor
the
researchcontent,
as well asthe
hardware
and softwaredevelopment.
A third
category
ofhelp
wasfrom
my
thesis
committee.I
amindebted
to
Stanislaw
Radziszowski,
Ph.D.
(Associate
Professor,
Rochester
Institute
ofTechnology,
School
ofComputer
Science
andInformation
Technology)
andConger
Gabel,
Ph.D.
(Vice
President,
Strategy
andPlanning,
Xerox
Engineering
Systems),
each reviewed
this
thesis,
andtheir
suggestions wereacknowledged.The final category is
sponsorship.I
wouldlike
to
acknowledgethe
Rochester
Institute
ofTechnology,
Department
ofComputer
Engineering
which provided anenvironment
in
whichmany ideas
weredeveloped
and a major portion ofthe
work was accomplished.I
am also gratefulto
the
Department's
supportthroughout
my
graduatelevel
studies.Last
but
certainly
notleast,
I
amequally
gratefulto
Xerox
Corporation
for providing
the
resources and encouragementto
pursuethis
Table
of
Contents
Table
ofTables
II
Table
ofFigures
Ill
Abstract
V
1
INTRODUCTION
1
1.1
History
andBackground
1
2
METHODS OF
IMAGE ENCODING
6
2.1
Run Length
Encoding
6
2.2
Q-Tree
Encoding
7
2.2.1
Tree
Structures
andDigitized Images
7
2.2.2
Tree Structures
andQ-Tree
(Regular
Decomposition)
Algorithms
10
3
IMAGE
PROCESSING APPLICATIONS
16
3.1
Complexity
Theorem
16
3.2
Quadtree
rotation algorithm17
3.3
Quadtree
scaling
algorithm17
3.4
Progressive Transmission
algorithm19
3.5
Segmentation
algorithm19
4
DISCUSSION OF RESULTS
20
5
CONCLUSION
46
References
48
Table
ofTables
1
Images
parameter analysis33
2
Images
compaction ratioanalysis34
3
Execution
time
analysisfor
rot-90 algorithm35
Table
ofFigures
1.1
Concept
ofDecomposition
2
1.2
A
pictureofaQ-Tree
4
1.3
Checkerboard Q-Tree
5
2.1
Basic
patternfor
runlength
codedhalftone
6
2.2
4x4
matrixA
8
2.3
Tree
of matrixA
decomposed
by
rows8
2.4
Tree
partitionofmatrixA
by
areas9
2.5
One level
ofQ-Tree
9
2.6
Complete Quad
tree
to
level 6
11
2.7
Boundaries
offour
subquadrants12
3.1
Illustration
ofclockwise 90 rotation17
3.2
Illustration
ofsf =2
18
4.1
Hardware Overview
22
4.2
Software
Overview
23
4.3
Chapel.
img
withThreshold
=128
24
4.4
Original Chapel.
img
256
gray levels
25
4.5
Original
Boat.img
256
gray
levels
26
4.6
Original
Forest.img
256 gray levels
27
4.7
Original
Girl.
img
256
gray levels
28
4.8
Threshold Chapel.
img
from
256
to
8 gray levels
29
4.9
Threshold
Boat.img
from
256
to
8
gray
levels
30
4.10
Threshold
Forest.img
from 256
to
8 gray levels
31
4.11
Threshold Girl.
img
from
256
to
8
gray
levels
32
4.12
Threshold Chapel.
img
from
256
to
8 gray
levels;
rot-90o36
4.13
Threshold
Boat.img
from
256 to
8
gray
levels;
rot-90o37
Table
ofFigures
4.15
Threshold
Girl.
img
from
256
to
8 gray
levels;
rot-90o39
4.16
Threshold
Chapel.
img
from 256
to
8
gray
levels;
sf =2
. . .414.17
Threshold
Boat.img
from 256
to
8 gray
levels;
sf =2
42
4.18
Threshold
Forest.img
from 256
to
8
gray
levels;
sf =2
....43
4.19
Threshold Girl.
img
from
256
to
8
gray
levels;
sf =2
44
ABSTRACT
The
issue
ofconstructing
a computer-searchableimage encoding
algorithmfor
compleximages
andthe
effect ofthis
encodedimage
on algorithmsfor
image
processing
are considered.A
regulardecomposition
ofimage
(picture)
areainto
successively
smallerbounded
homogeneous
quadrantsis defined.
This
hierarchical
searchis
logarithmic,
andthe
resulting
picture representationis
shownto
enable rapid access ofthe
image
data
to
facilitate
geometricimage
processing
applications(i.e.
scaling,
rotation),
and efficient storage.The
1.
INTRODUCTION
1. 1
HISTORY
AND
BACKGROUND
OF
Q
-TREES:The
motivationfor
this
investigation is
to
explorethe
usage of a quadtree(Q-Tree)
data
structurefor image
processing, compaction, segmentation,
progressivetransmission,
and storage applications.The
methods and algorithmsdiscussed
were collectedfrom
a widevariety
ofliterature,
andare,
ofcourse,
notlimited
to
this
presentation.A
quadtreedata
structureis
defined
asthe
recursivedivision
of animage into four
disjoint
congruent square regions calledquadrants,
whose union coversthe
originalimage
space.There
arethree
general methodsto the
representations of a quadtree encodedimage
data
base:
(1)
atree
structurethat
uses pointers(2)
listing
nodesin
preorder or postordertraversal
ofthe tree
structure,
representing
them
asNW, NE, SW,
SE.
Nodes
canbe
terminal
(identified
by
acolor),
or non-terminal.(3)
locational
codesThe
scope ofthis
paperfocuses
on approach(2).
Methods
(1)
and(3)
are coveredin
great
detail
by
[Samet-4]
and[Gargantini-1,2].
A very
important
issue
involved
withthe
processing
ofimages is
called segmentation.The
segmentationtask
involves
identifying
subsets orextracting
objects ofinterest from
a scanned(digitized)
image. Horowitz
andPavlidis
[Pavlidis-1]
showhow
to
segment a pictureusing traversal
of a quadtree.The topic
of segmentation willbe discussed
further
in
section3.
Other
typical
requirementsfor
the
processing
ofimages
are geometrictransformations,
progressivetransmission,
and compression.
It
is
shownin
this
paperthat the
Q-Tree
algorithms selected canhelp
facilitate
these
requirements.Section
2 is devoted
to the
description
ofthe
Q-Tree
(Regular
Decomposition)
image
processing
algorithm.This
data
structure andits
potentialfor
efficienthandling
ofimage
processing
functions
willbe discussed.
Definitions
ofterms
aredeveloped
to
facilitate later discussion
ofthe
Q-Tree data
structure.In
section3
the
Complexity
Theorem
is
statedalong
with severalImage
Processing
algorithmsthat
may
be
appliedto
the
Quadtree
data
structure.In
section4
the
Image
Processing
algorithms are appliedto
complex portions ofmeasurements of
storage,
and computationtime.
These
results willbe
compared withsimilarmeasurements on unencodedimages.
Section
5
summarizes somekey
advantages anddisadvantages
ofthe
use ofthe
Q-Tree
hierarchical data
structure and suggestfuture
areasof exploration.The
Appendix
providesthe
completeC-language
source codefor
"Videorw.c",
"Xform.c"
and "Thesisqt.c" programs.
At this time
we willbriefly
introduce
the
concept ofQ-Tree
(regular)
decomposition
which willbe
further detailed
in
section2.
The
conceptofthe
decomposition
algorithmappliedto
binary
images
is
stated asfollows:
1
.Represent
adigitized
image
asspatial subsets ofdifferent
sizes markedeither
"intermediate
node"
or
"final
node".2.
Discard
picture elements(pixels)
that
belong
to
"final
node" subsets[Klinger].
quadrant A quadrant B
7"
T
quadrant
C
quadrant D(a)
P.A.A. P.A.B. P.A.C. P.A.D. P.D.A. P.D.B. P.D.C. P.D.D.
P.A.A.A.
P.A.A.B.
P.A.A.C.
P.A.A.D.
P.A.D.A. P.D.A.A.
P.A.D.B. P.D.A.B.
P.A.D.C. P.D.A.C.
P.A.D.D. P.D.A.D.
(b)
P.D.D.A.
P.D.D.B.
P.D.D.C.
P.D.D.D.
FIG. 1.1
.(a)
A
diagonally
orientedobject,
and(b)
Q-tree
representation of(a),
with
Pat
the
root andthe
reduced picture ofPat the
leaves.
A
variationto
this
conceptis
implemented
in this
Thesis
in the
following
manner:is
a quadrant.Secondly
two-possibilities
exist whenthe
Q-Tree
algorithmlooks
ataquadrant:
1.
The
presentlevel is
alarge
homogeneous
area.Such
an areamay
eliminate
the
investigation
of all possiblelevels below
the
present orparent
node, thus this
areais
stored as a"final
node"
in the
data
structurewithout
loss
ofimage
information.
2.
Nonhomogeneous
information is
found
in
the
quadrant.Many
lines,
vertices,
and regionswithdiverse
textures
are examples whichmay
be
found.
Such
an areais
classified as a mixed node and mustbe
investigated
at all possiblelevels below
the
present or parent node.Thus this
area shouldbe
savedin
the
data
structure as an"intermediate
node".Thus,
if
the
algorithmfails
to
make adecision
about a picturequadrant,
it is
subdivided and
then
each ofthe
four
subquadrantsis
processedby
the
sameprocedure.
The
subdivision processis
appliedrecursively
until either nofailures
occur or else
the
quadrant sizebecomes
equalto
the
smallest resolvable point ofthe
image
(i.e.
onepixel)
[Klinger]
Fig. 1.1
andFig. 1.2
areillustrations
ofthis
concept.The
process of regulardecomposition
is
thus
alogarithmic
searchfor
pictureareas where
there
is data
("intemediate
node"&
"final
node")
present(i.e.
the
amount ofspace required
to
store aQ-Tree
data
structure,
is
proportionalto
the
log
of
the
image diameter
n(
log
2n = n),
where nis
also a representation oflevels
within
the
data
structure.The
algorithmbuilds
atree
by hierarchically
examining
apicture's contents.
Each
areais
assigned animportance
based
onhow informative it
is
judged to
be.
As
mentioned abovethe
prime motivationsfor
the
development
ofthe
Q-Tree
data
structure arethe
reductionin
processing
time
ofimage
processing
primitives,
the
enabling
of progressivetransmission
and compaction(reduction
of storagespace
/transmission
time)
with respectto
gray-scaleimages.
One
should notehowever,
that
there
are some pathologicalcases;
for
examplethe
encoding
ofa checkerboardimage
withthe
Q-Tree data
structure would notbe
very
efficient,
asshownin
Fig. 1
.3.If
image
compressionis
ofprimary
interest,
there
are other methods such as runlength
encoding,
adaptivehierarchical coding
andbintree
encoding.Run
length
*
level 0
(entire
image)
*
level
1
*
level
2
*
level
3
level
4
(picture
elementor
pixel)
2.
METHODS OF IMAGE
ENCODING
2. 1
RUN LENGTH ENCODING:
The
array
is
acommonform
ofdata
structurefor image
encoding.However,
for
large
images
the
amountofstorage requiredis
oftendeemed
excessive[Samet-1,2].
Many
wayshave been devised for reducing
the
size ofthe
image
database,
by
encoding
the
data
in
someway.As
an example runlength
coding
is
one methodfor
reducing
the
number of requiredmemory
cells.The
principleis
to
collect runs ofadjacent picture elements of equal
brightness
andto
encodethe
length
ofthe
runand
the
brightness.
Run
length
codes areparticularly
usefulfor
raster-likedevices,
such astelevision.
Another
application of runlength
coding is
the
generation ofhalftone
pictures on graphic computerterminals,
in
this
application runlength
is
used
to
improve
the
limited
capacity
ofthe
refresh memory.Amemann
presented asolution
to
this
display
problem,
runs were collected and representedby
onebasic
pattern which covered several picture elements
[Arnemann].
An
example ofsuch apattern
is
shownin Fig. 2.1.
1 pixel
entrance
?'
run
covering four
picture elementsHowever,
for
large
images
the
amount ofstorage requiredis
stilldeemed
excessive.The
interested
readeris
encouragedto
consult[Arnemann
andLimb],
for
anin-depth
analysisofrunlength coding
applicationsto
halftones
display
(i.e.
television).
2.2
Q-TREE
ENCODING:
Another
data
structure which canbe
usedto
reducethe
size ofthe
image
database
is Q-Tree.
Q-Tree encoding
also resultsin
less
computationtime
for image
processing
than
doing
it
onthe
unencodedimage.
A
common approachin
preparing
animage for Q-Tree
encoding,
is
to threshold the
pictureitself.
Intensity
of
gray level is
the
coarse pictureimportance
parameter.[This
is
the
naturalapproach
in
several cases: automatic character recognition(black
characters,
whitepage);
reconnaissance photographs(clouds
whiterthan
terrain)].
The
fixed
threshold technique
is
the
simplestto implement in
that
the
decision
ruleis
simply
stated:
If
/
>
T,
thenP
=R.
xy xy
elseP =
0.
xyThe
threshold
T
is
usually in
the
neighborhood ofR/2
[Jarvis]
Often,
ahigh-contrast
text
orline image
canbe
successfully
displayed
by
this
technique;
however,
fixed
thresholding
of continuoustone
subjects generate outputimages consisting
offeatureless bands
oflit
cellsthat
bear
only
an outline resemblance(see
Fig.
4.3)
to
the
original(see
Fig. 4.4). A
threshold,
T
=1
28
was usedto
produceFig. 4.3.
A
slightimprovement
overthe
fixed
threshold
is to
replaceT
by
equally
distributed
random numbers overthe
range0
to
R
with a new random numbergenerated
for
each/xy
[Jarvis].
The
contribution ofthis
paperis
in
the
area of gray-scaleimages.
Thus
gray
images
with256
gray-levelsare thresholdedusing
the
following
rule:if(0<
=lxy
<
=31),then
Pxy
=BLACK,
else
if(32<
=lxy
<
=63),
then
Pxy
=GRAY1,
..else
if(192<
=lxy
<
=223),then
Pxy
=
GRAY6,
else
Pxy
=WHITE.
where,
BLACK
=0,
GRAY1
=63GRAY5
=191,
GRAY6
The
aboveis
an example ofthresholding
animage
that
has
256
gray levels
reduced
to
8 gray levels.
A
different
leaf
criterion couldbe
used;
e.g.any
number ofleaf
levels from
2 to 256
couldbe
usedfor
the
leaf
criterion.2.2.
1
Tree-structures
andDigitized Images.
Digitized images
arecommonly
represented as squarearrays,
where eachelement of
the
array
contains someinformation
aboutthe
corresponding
area ofthe
image
spacebeing
viewed.It is
wellknown
that
such anarray
canbe
thought
ofas a special case of a
tree
structure[Knuth].
For example, Figs. 2.2
and2.3
givetwo
representations of a
4 X
4 matrix, the
latter explicitly
displaying
the
relationships ofelements
in
the
same rowin
atree.
However,
this
tree
does
notdisplay
allthe
structure of
the
matrix(column
relationshipsomitted),
and a similartree
based
oncolumn relations omits row
information.
Since
picture elements areusually
obtained
from horizontal
raster scanlines,
row-orienteddata
structures andalgorithms
utilizing
line
by
line
'slices'
arecommon
in image
processing [Klinger].
A(1,1)
A(1,2)
A(1,3)
A(1,4)
A(2,1)
A(2,2)
A(2,3)
A(2,4)
A(3,1)
A(3,2)
A(3,3)
A(3,4)
A(4,1)
A(4,2)
A(4,3)
A(4,4)
FIG. 2.2.
4X4
matrixA.
A(1.*) A(2,*) A(3.*) A(4,*)
^A\
/"An.
/A\ /A\
A(1,1) A(2,1) A(3,1) A(4.1)
A(1.2) A(2.2) A(3,2) A(4,2)
A(1,3) A(2,3) A(3,3) A(4,3)
A(1,4) A(2,4) A(3.4) A(4,4)
However,
general properties ofimage
classes areunlikely
to
be
representedin
linear
(row)
form,
sincekey
geometrical,
topological,
structural,
and metricconstraints are
usually
involved.
Because
adata
structure should reflect priorknowledge
about properties contained withinthe
data
base,
representations whichfacilitate
computer searchfor
picture propertiesin
areas wouldbe
preferable.A
tree
structure whichdirectly
reflects areas(rather
than rows)
for
the
above4X4
matrix
is
shownin Figs. 2.4
and2.5
[Klinger].
upperleft
corner
upper lower right corner cleft orner
lowerright corner
A(1.1) A(1.2) A(2,1) A(2,2) A(3,3) A(3,4) A(4,3) A(4,4)
FIG.
2.4.
Tree
partition of matrixA
by
areasFATHER
FIG.
2.5.
One level
ofQ-tree
(regular
Decomposition).
This
structure canbe
conveniently
representedfor
computationby
Dewey
decimal
[Knuth]
(library
classification)notation:1
A
1.1
upperleft
corner1.1.1
A(1,1)
1.1.2
A(1,2)
1.1.3
A(2,1)
1.2
upper right corner1.4.4
A(4,4)
This
leads
to
adecision
to
build
algorithms whichtraverse
an encodedimage's
quadtree
by
preorder[Knuth].
Preorder is
defined
as alisting
ofthe
root nodefirst
followed
by
the
root node'sdescendants.
Thus,
visiting
the
nodes ofthe
tree
by
preorder permits
viewing
of allsuccessors,
because
the
root node willbe
examinedfirst followed
by
all subtrees ofthe
root.Since
successors represent smaller picturezones, the
tree
and a preordertraversal
algorithmbreak
the
overall scene analysistask
into
the
solution of a series of subproblems.Since
the
postorder approachallows
for
the
viewing
of eachlevel,
this
algorithmis
usedto
derive
the
resultsfor
this
presentation.This
approach allowsfor
the
progressiveprocessing
/transmission
of
images
in
successively
greaterdetail,
allowing
the
processto
be
terminated
atany
"satisfactory"level.
We'll
seesome examples ofthis
later.
2.2.2
Tree Structures
andQ-tree
(Regular Decomposition)
Algorithms
The
data
structure ofFig. 2.4
is
the
regulardecomposition
ofthe
picture areaby
successive
partitioning into
quadrants.The
resultis
atree
where eachfather
nodehas
four
successor nodes.These
are orderedarbitrarily
by:
upper-left(NW),
upper-right
(NE),
lower-left
(SW),
lower-right
(SE).
This is illustrated in Fig.
2.5 for
a singlelevel
ofdecomposition
andin Fig.
2.6 for
sixlevels,
andformalized
by
the
following
definitions
[Klinger].
Q-tree:
A
Q-tree is
afinite
set of nodes whichis
eitherempty
or consists of aquadrant and atmost
four disjoint
0-frees
[Klinger]. This
recursivedefinition
ofQ-Tree is
analogousto
Knuth's definition
ofbinary
tree
[Knuth],
excepthere
each nodehas
exactly four
equal-sized subtrees(quadrants)
or children.The Q-Tree
data
structure
successively
subdivides abounded
region untilhomogeneous blocks
areobtained.
Root
node:Root
node representsthe
entirearray [Samet-4].
Quadrant:
A
quadrantis
representedby
one ofthe
four
sons of a node[Samet-4].
Quadrants
are nodes which canbe
labeled
by
NW, NE, SW,
SE.
Picture: A
pictureis
a quadrantlabeled P.
Leaf
quadrant:A leaf
quadrantis
a terminal nodecorresponding
to
ablock
ofthe
Reduced
picture:A
reduced pictureis
the
setofallleaf
quadrantsin
aQ-Tree
whoseroot
is
labeled
P. No
parent nodemay
have
allits
descendant
leaves
the
samecolor;
since a parent and
its
descendants
representthe
same region ofthe
picture,
if
alldescendants have
the
samecolor, the
picture canbe
morecompactly
representedby
coloring
the
parent,
andremoving
allthe
children[Hunter-1].
Regular
Decomposition:
A
regulardecomposition
ofa pictureP
is
aQ-tree
withP
atthe
rootandthe
reduced pictureofPat
the
leaves
[Klinger].
NUMBER OF NODES AT LEVEL
i
= 4'MAXIMUMTREE DEPTH FOR 64X64 ARRAY =
6
6
TOTALNUMBEROF NODES IN TREE =
2
4' = 5461 NODES\=
0
Informally,
a quadrantis
a squareimage
area,
characterizedby
relativeposition,
size,
anddisplay
value(intesity).
The
absolutelocation
ofa quadrantin
the
pictureis
obtainable
from its
Dewy
decimal
label
[Klinger
andKnuth]
orits
positionin the
pre(post)-order
search.To
computethe
poperties ofthe
four
successor subquadrantswemay apply
Rule
1
describe
below,
whichdivides
each side ofthe
quadrantin
half
and assigns newvertices
to the
subquadrantsforming
integer-values
ofboundary
line
positionsandhence disjoint
subquadrants(see
Fig.
2.7)
[Klinger].
Where,
i(i,j) is
defined
asthe
intensity
value atdesired
pixellocation.
FIG. 2.7. Boundaries
offour
subquadrantsofquadrantdefined
by
Rule 1.
RULE 1
.Letbe
the
label
ofa quadrantwhose properties are :Cx
=<i(i,j),xa
min.x^ max.y^
min.y,,
max>.Then the
root-labels and propertiesofits four
subquadrants are:1.
.r.ALee.A =
y=.Amax Xoc.Amax
j
=y<*.Amin '= X"1.Amin
/(',/;,
X,,
minp,c
"** 1 fy^
minf2.
o=.CCrC
=y.Cmax
Z
Xoc.Cmax
Xtt
mi/
= y^.Cmini
= Xer.cmin[2
J'
L-
TJ"
y-
max3.
.BC.B
=y^.Bmax X=.Bmax
Z
Z
I
- y<=.Bmin 1 = Xoc.Bmin4.
a.DCec.D
=y=.Dmax Xoc.Dmax
z
z
/
= yc.Dmin / = Xcc.DlI
Xg
min?Xg
maKhj),
2
,
Xs
max,y^
mjI
y<r
min?
Vg
maxI \
'J/
[
a min+ tt maxl|
.
s
J
x
max, IY.s_
min+/n
y,r
maxA
common program which performs regulardecomposition implements
the
definitions:
A
picturePto
be
processedbegins
as an nXndigitized
image;
Rule 1
is
appliedto
it
recursively
andit is decided how
the
four
successors(quadrants)
Q-Trees
shouldbe
addedto the
data
structure.If
quadrant ="terminal",
then
y's successorQ-Tree
with rootlabeled
x consists ofthe
singleleaf
quadrant x.If
quadrant ="not
terminal",
then
y's successorQ-Tree
with rootlabeled
xis
aQ-Tree consisting
of atleast
four
nodes;
here.
Rule
1
willbe
appliedto
quadrant x asit
wasto
its
parenty.The
final
resultis
atree
structure withPas
the
rootnode,
"not
terminal"
quadrants
making
up
the
nonterminal nodes and"terminal"quadrants
comprising
the
leaf
The
data
structure can alsobe described
asfollows:
each nodeis
represented asarecord of
type
nodecontaining
sixfields. The
first
five fields
contain pointersto
the
node's
father
andits
four
sons,
which correspondto
the
four
quadrants:a)
If the
nodeis
aleaf
node,
it
willhave
four
pointersto
the
empty
record(i.e.,
NIL).
b)
If
P
is
a pointerto
a node andI
is
aquadrant, these
fields
are referenced asFATHER(P)
andSON(P,l),
respectively
[Samet-1].
c)
The
sixthfield,
NODETYPE,
describes
the
contents ofthe
block
ofthe image
that
the
node represents:(i.e.black,
white,
grayi
or mixed).Encodequadtree Algorithm.
From the
discussions
abovethe
actualformat
ofthe
algorithm usedfor
this
Thesis
is
asfollows:
the
image is
encodedusing
abreadth-first
scheme[Knuth],
all nodes(i.e., father,
sons)
are stored as abyte
ofdata,
anddata beneath homogeneous
regions are not stored
(as
mentionedbefore
this
facilitates
the
amount of spacerequired
for
a givenimage).
The
NODETYPE
described
in
this
algorithmis
either,
BLACK, WHITE,
GRAY1-6,
orMIXED.
The
pseudo-codeis
illustrated below
(see
"Thesisqt.c"
in
Appendix
for
completeC-language
programlisting).
Encodequadtree
(x,
y, width)
{
open output
file
to
containencoded quadtree
image;
determine
maximum-level;
for (level
=0;
level
< =maximum-level;
level
+1)
{
if
(level
=0){
determine
node(father)
color-value;write value
to
outputfile;
}
else{
performrecursive subdivision of
image;
keep
track
of ancestors(i.e., father,
sons,
brothers);
write out values of each
to
outputfile;
}
}
Decodequadtree
Algorithm.
The
decoding
algorithmfor
a quadtreeis
analogousto the
preceeding
encoding
algorithm.
The
pseudo-codeis
illustrated
below,
(see
"Thesisqt.c"in
Appendix
for
completeC-language
programlisting).
Decodequadtree
(x,
y,
width)
{
determine
rotation;
open
input
file
that
containsencoded quadtree
image;
determine
maximum-level;
for
(level
=0;
level
< =maximum-level;
level
+1)
{
if
(level
=0)
{
read
Encoded
quadtreefile;
Display
nodevalue at currentlevel;
}
else
{
determine
widthfrom
scalefactor;
for
(each
elementatlevel)
{
Determine
quadrantposition;
Display
node value at currentlevel;
}
}
}
3.
IMAGE PROCESSING
APPLICATIONS
3.
1
COMPLEXITY THEOREM:
We
will now examineQ-tree
algorithms usedto
implement
linear
transformations
andtheir
complexity.The
following
theorem
illustrate
the
complexity
ofthe
transformation
algorithms:
Letp
be
the
polygon perimeter.Let q
be
the
resolution(depth)
ofthe
perimeter.Let
mbe
the
number of polygonsin the
input
tree.
Letn
be
the
number of nodesin the
input
tree.
Let
sbe
the
scaling
factor.
Theorem
1.2.
Time
and space of0(n
+sp
+mq)
are sufficientfor
the
quadtree transformation
algorithm.The
proof ofTheorem 1.2
is
coveredin
greatdetail
in
[Hunter-2].
The
corollary
to
Theorem 1.2
is
asfollows:
Corollary
1.2.
Since
mis
nolarger
than n, time
and space of0(nq
+sp)
aresufficient,
orO(n + p)if
the
resolutionq
andthe
scalefactors
ofTare
fixed [Hunter-2].
Thus
the
Q-Tree
data
structure can produceapproximately 33
percent morenodes
than
pixels[Pavlidis-2].
Aside
from its
implications
onthe
storage requirementsthe
quadtreecomplexity
theorem
alsohas
adirect
impact
onthe
analysis ofthe
executiontime
of algorithms.In
particular, most algorithmsthat
execute on a quadtree representation of animage
instead
of anarray
representationhave
an executiontime that
is
proportionalThus
the
cost ofthe transformation
is simply
the
costofvisiting
each node ofthe
quadtree andcreating
acopy
withthe
appropriate newdata.
3.2
QUADTREE
ROTATION ALOGRITHM:
For
example a clockwise rotationby
90
degrees,
the
SW, NW, NE,
andSE
sonsbecome
NW, NE, SE,
andSW
sons rotatedrespectively,
at eachlevel
ofthe
quadtree[Samet-3].
An
example ofclockwise 90rotationis illustrated
in Fig. 3.1
.NW NE
Wt
i
SVV SF
m
1
90
(a)
NW +NE +
SE **SW ~
**NW
NW
SW
NE
a. SE
(0
(d)
FIG 3.1
Illustration
of clockwise90rotation:(a)
originalimage,
(b)
level
1
90rotation,
(c)
level 2
90rotation,
(d)
level
3
90rotation.
In
section4
the
above rotation algorithmis
comparedto
the
homogenous
rotation transformation algorithm
(see
"xform.c"
3.3
QUADTREE
SCALING ALGORITHM:
To
makeanimage
representedby
a quadtreehalf
the
sizethat
it
wasoriginally,
we need
only
create a new root and givethat
rootthree
white sons and one sonthat
wasthe
original quadtree.To
makethe
quadtreetwice
asbig,
we choose oneof
the
subtreesto
serve asthe
new root(e.g.
the SW subtree),
thus
eliminating
the
remaining
three
subtrees.If
a particular portion ofthe
quadtreeis
to
be
doubled
orhalved in
size, then
a shift operationmay
have
to
be
performedfor
the
purpose ofalignment.
See Fig. 3.2
for
anillustration
ofscaling
algorithm.In
section4
this
scaling
algorithmis
comparedto
the
homogenous
scaling
transformation
algorithm(see
"xform.c"in
Appendix
for
completeC-language
programlisting).
NW NE
W
l
SVV
0
SE
w
w
sf = 2
?
(a)
(b)
FIG. 3.2.
Illustration
ofscaling
algorithmfor
a256
x256
pixel region:(a)
original256
x256
pixelregion,
(b)
original regionscaledby
afactor
of2 to
3.4
PROGRESSIVE
TRANSMISSION
ALGORITHM:
Progressive
transmission
ofimages
representedby
quadtrees canbe
achievedby
taking
advantage
ofthe
abovetechniques
for
scaling
by
powers oftwo.
Progressive
transmission
of animage
enablesthe
receiverto
preview a reduced-resolutionversion of
the
image
before seeing
it in its
entirety.This
applicationfacilitates
browsing
through
adatabase
ofimages.
If the
nodes of a raster quadtree aretransmitted in
breadth-first
order,
large
leaf
nodes are seenfirst [Samet-3].
This is
one of
the
primary
motivationsfor
the
breadth-first
ordering
oftree traversal.
3.5
SEGMENTATION
AND
QUAD TREE
DATA STRUCTURE:
While
edgedetection
andthresholding
focus
onthe
difference
of pixelvalues,
region
growing looks for
groups ofpixelsofsimilarbrightness.
In
its
simplestform,
the
method startswith onepixel,
andthen
examinesits
neighborsin
orderto
decide
whether
they
have
similarbrightness.
If
they
do,
then
they
are groupedtogether to
form
a region.In
this
way
regions are grown out of single pixels.Fig. 4.20
illustrates
the
concept segmentationby
extraction of pixels equalto
gray5(160-191).
More
advancedforms
of segmentationdo
not start with pixelsbut
with apartition of an
image
into
a setofsmaller regions.A
uniformity
test
is
then
appliedto
eachregion,
andif the test
fails
the
regionis
subdividedinto
smaller elements.This
processis
repeated until all regionsare uniform.Then
regions aregrown outofsmaller
regions,
ratherthan
pixels.The
details
ofimplementation
depend
strongly
on
the
data
structures usedfor
representing
animage.
This
particular application ofsegmentation
is
exactly
suitedfor
quadtree
data
structure[Gonzalez],
and arecommonly
referredto
as'split-and-merge'
algorithms.
Although the
split-and-merge algorithm was notimplemented
in
this
Thesis,
this
algorithm
is
an extension ofthe
use of regiongrowing
anduniformity
tests
for
image
segmentation.One
starts withthe
nodes(squares)
at someintermediate level
ofa quad
tree.
If
a squareis found
to
be
nonuniform, then
it
is
replacedby
its
four
subsquares
(split). Conversely,
if
four
squaresarefound
that
form
a uniformsquare,
they
are replacedby
it (merge).
This
processmay
continuerecursively
until no4.
DISSCUSION
OF
RESULTS
In the
experimental analysis several gray-scaleimages
were examined.These
images
covered a range of256
gray-levels.The
following
list
of equipment was usedto
carry
outthe
experimental analysis:Frame
Grabber PCVISION-PLUS:
Frames
Two
frames
by
512
x512
x8
pixels each(512k Bytes
ofmemory)
Pixel
locations
horizontal
-0<
=X
<
=511
vertical -0< =
Y
< =511
Area
sizerangeshorizontal
-1<
=X
< =512
vertical -1< =
Y
<
=512
Banks
-the
banks
are
divided
up
in
a64K
by
8
matrix,
due
to the
64K
segment size of
the
IBM type
of personalcomputer,
eachframe
grabber
memory
is
divided into four
strips,
Memory
A
-0to
3
Memory
B
-4to
7
Strip
selection -bank desired is
selectedby
loading
0,
1
,2,
or3;
or4,
5,
6,
or7
into
the
block
selectregister,
PC I/O
addressbits
5
-7.Memory
Addressing
-Frame
grabbermemory is
addressedby
selecting
segment
DOOOx,
and offset0
through
FFFFx. The
bank
selectedby
the
block
select register willthen
be
addressed.IBM
compatiblePC/AT-286
(6MHZ):
IBM
DOSver.
4.0
1.2 MB
Floppy
disk drive
80 MB Hard
disk
Enhanced
Graphics Adapter
1MB RAM
Math
co-processorchip 80287
Video Input
is from
aTV
camerausing
standardRS-170
television
signal.Laser Printer
With the
list
of equipment above and afull-screen
editor calledEpsilon,
the
program
listings
in the Appendix
weredeveloped
using
the
C
-Language Microsoft
Quick-C
complier ver.5.1.
Fig. 4.1
andFig. 4.2
describes
the
system'sHardware
andSoftware Overview
respectively.The
objectives ofthe
experimental analysis wereasfollows:
1)
Perform
Q-tree
encoding,
asdescribed
2)
Homogeneous
transformations
(i.e.
rotate,
scale):Compare
executiontime
of rotation andscaling
functions
onunencoded and encoded versions of
images.
3)
Determine
compaction ratio ofQ-tree
gray-scaleimages
4)
Segmentation:
extract all parts of an
image whereby
nodes =grayj
These
four
objectives were performed onthe
following
common gray-scaleimages,
U
ofR
chapel,
Boat,
Forest
andGirl.
Fig. 4.3
and4.4
illustrates,
the
concept ofselecting
threshold
value equalto
half
the
maximum number ofgray
levels. Fig.
4.5-4.7
arethe
Original
.img256
gray levels
image
ofBoat,
Forest
andGirl
respectively.Fig. 4.8
-4.1
1
arethe
Original
HARDWARE OVERVIEW
Computer
Video
Display
SOFTWARE
OVERVIEW
MainMenu
mam
Encode/
Compress
Decode
/Decom
pression
Homo
geneous
Trans
formations
Extract
gray
level
Area
Of
Intrest
Load
image
White
out
display
Black
out
display
UTILITIES
FUNCTIONS
FIG.
4.2.
Software Overview. A description
ofsoftware modules relationships.FIG. 4.3.
Chapel.img
withThreshold
=128.
number of lines: 476
number ofpixels: 509
FIG. 4.4. Original
Chapel.img
256
gray
levels
number of lines: 476
number ofpixels: 509
FIG. 4.5. Original
Boat.img
256
gray
levels.
number of lines: 441
number of pixels: 441
Wk
Bjliilg
mill
FIG. 4.6. Original
Forest.img
256
gray
levels.
number of lines: 476
number of pixels: SOB
FIG. 4.7. Original
Girl.img
256
gray
levels.
number of lines:
number of pixels :
start line:
FIG. 4.8. Threshold
Chapel.img
from
256
to
8
gray
levels.
number of lines: 476
number ofpixels: 491
FIG.
4.9. Threshold
Boat.img
from
256
to
8
gray
levels.
number of lines: 437 number of pixels: 430
K^
FIG.
4.10. Threshold
Forest.img
from 256 to
8 gray
levels.
number of lines: 441
number ofpixels: 444
FIG. 4.11. Threshold
Girl.img
from
256
to
8 gray
levels.
numberof lines:
number of pixels:
line:
456
471
Table
1
.Image
parameter analysis.Image
(-img)
Dimension
2nx2n
Maximum
tree
depth
(n)
n
Max
v
=
#of
^
4'nodes
i=0
(bytes)
Number
ofNodes
(bytes)
Nodes
Ratio: No.ofnodes/ Max#
ofnodes
chapel
256x256
8
87381
31455
.360boat
128x128
7
21845
7547
.345Forest
128x128
7
21845
11043
.505Girl
64x64
6
5461
3551
.650Text
256x256
8
87381
19955
.228Table
1
is
a representation of eachimage,
dimensions
(2nx2"),
maximumtree
depth,
Table
2.
Image
compaction ratio analysis.Image
Dimension
2nx2n
Number
of
Nodes
(bytes)
Total
pixels
(bytes)
Compaction
Ratio:
#
of nodes/Total
pix.(bytes)
chapel
256x256
31455
65536
.479boat
128x128
7547
16384
.460Forest
128x128
11043
16384
.674Girl
64x64
3551
4096
.866Text
256x256
19955
65536
.304Table
2,
Image
compaction ratio analysis.The
total
number of pixelsis
2^x2".
This
ratio
is
obtainedby
the
number ofbytes
in
the
Q-tree
(encoded)
image
file,
divided
by
the
total
number ofbytes
in
the
original(unencoded)
image file. The
best
caseis
aTable
3.
Execution
time
analysisfor
rotate algorithm.Image
rotaterotate = 90
Maximum
tree
depth
(n)
Number
of
Nodes
(bytes)
Execution
time
encoded
(sec)
Execution
time
unencoded
(sec)
chapel 90o
8
31455
54
73
boat
907
7547
15
18
Forest
90o7
11043
18
18
Girl
90o6
3551
7
5
Table
3,
Execution
Time
analysisillustrates the
time
it
takes
to
perform rotation , onall
images.
The
executiontimes
areobserved with encoded and unencodedimages.
FIG. 4.12. Threshold
Chapel.img
from
256
to
8
gray
levels;
rot-90.number of lines: 476
III
m
uiiMlilii
;;;W4s>i:R:;;iftH:S-:i:Smi:'r::::!:;:;::J::;:::::i;':i
W'H'iiv."W;;:'SB;:'
>:K;';:::; ;*;! iiSS^iKSiwK'iKKS-J
Wk3w55&w4
FIG. 4.13.
Threshold
Boat.img
from 256 to
8
gray
levels;
rot-90.number of lines: 437
number pixels; 430
FIG. 4.14. Threshold
Forest.img
from 256 to
8
gray
levels;
rot-90.number of lines: 476
number of pixels : 509
FIG. 4.15. Threshold
Girl.img
from 256
to
8 gray
levels;
rot-90.number of lines:
number of pixels:
Table
4.
Execution
time
analysisfor
scale algorithm.Image
scale
scale
factor(sf)
=2
Maximum
tree
depth
(n)
Number
ofNodes
(bytes)
Execution
time
encoded
(sec)
Execution
time
unencoded
(sec)
chapel
2
8
31455
106
306
boat
2
7
7547
27
75
Forest
2
7
11043
32
76
Girl
2
6
3551
10
18
Table
4,
Execution
Time
analysisillustrates
the time
it
takes to
perform2x
scaling
, onin
::::::::::::
lliilililllllll^
iiiiii
I
*;
Wk
m
W
w
%
#
^^g^^^ggggSi
FIG. 4.16. Threshold
Chapel.img
from 256
to
8
gray
levels;
sf=2;
number of li/ies: 476
number of pixels: 509
m
:;:-: :::x:::-:::-::: ::;:::
mmmm
::::::::::;::::::::::
:-;^:;-;-;:-:::::x-::^;-x'x
FIG. 4.17. Threshold
Boat.img
from
256 to
8
gray
levels;
sf =2.
number of lines: 437
number of pixels: 430
mump
- 'v
--
3
Bw'>::::: ::"?.. :::x-sssKBSBgSffi
MB
;:Hp.;
VMM9HP
MUMf
Sail
rv,^M*W:->v:wfcVV.^v.v*-.'':'*< '.'
wmmmm
m
wBm
:''Oii'''.':''te;>,:-- :.."
:-yy.-.
:&.
;:.;;>-:-:;.j!g%: :: :.:; 1*;^:
:-:..:;:..;.':*.. -..::,: ':.. .;,-, ...:
^^mS^i-i^SS^-^^^^^^M
&%&'?%?"''>. j
^^^^J^^flo'v:^^''^'^y>^'>^j{ggBgmgffi
--^ '^tetej^^^v.-
-FIG. 4.18. Threshold
Forest.img
from
256
to
8
gray
levels;
sf=2.
number of lines; 476
number ofpixels: 509
FIG. 4.19.
Threshold
Girl.img
from 256 to
8 gray
levels;
sf=2.
number of lines: 456
number ofpixels: 471
feSSs&Ssim
ill
Si
B
11
ft
SB
Km
FIG. 4.20.
Segmentation
ofChapel.img
gray5(160-191).
number of lines: 476
number ofpixels: 504
5.
CONCLUSION
In
section1
it
was mentionedthat the
goal ofthis
Thesis
wasto
investigate
the
use of
the
Q-Tree
data
structurefor image processing
primitives,
compaction,
segmentation,
progressivetransmission,
browsing
and storage applications.The
results
described
in
section4,
illustrate
that the
goal wasaccomplished
and severaladvantages were
identified.
With the
encodedimage
the
user can utilizethe
browsing
feature
of aQ-tree
encodedimage. This
browsing
feature
allowsthe
userto
viewimages
from
level
0
(entire
image)
to
level
n(border
pixels).Thus
the
usermay terminate this
browsing
atany
satisfactory level.
A
commonlist
ofadvantagesof
Q-tree
encoding
are asfollows:
1.
Q-Tree
encoding
can addressthe
issues
ofstorageby
recursive subdivision ofimages.
Images
which arephysically
too
big
to
storein
fast memory
at onetime
canbe
processed as a sequence of subpictures extractedduring
Q-tree
encoding.
2.
Q-Tree encoding
enablesaddressing
for
rapid accessto
any
geographical partof
the
image.
3.
Q-Tree encoding
retainsexplicitly
in the
data
structure ahierarchical
description
ofthe
picturepatterns,
elements,
andtheir
relationships.Hence,
this
schememay
alsobe
usedin
conjunction withimage processing
algorithms[Firschein-1
,2,Pavlidis-4,5].
4.
Q-Tree encoding
permits recursive analysis of subpictures.5.
The decomposition
algorithm contains major routines(traversal,
tree-creation)
which areindependent
ofimage
class(binary,
gray,
etc.).Small
changes can adapt regular
decomposition
to
widely
different
types
ofimages.
6.
The
Execution
time
for
geometric applications(i.e.
scaling,
rotation),
aredecreased,
because
each primitive executionis
based
onblock
excutioninstead
of pixel execution.As
mentionedpreviously
there
are some pathologicalcases; a) the
encoding
ofnon-homogeneous
regions,
c)
encoding
animage containing
varying
neighboring
textures
d)
rotation of regionsthat
are not multiples of90,
ore)
chosing
scalefactors
that
are not multiples of2.
Clearly
these
casesintroduce
disadvantages
ofthe
use ofthe
Q-Tree
data
structure.However,
the
advantages stated aboveclearly
show
promising
application use ofthe
Q-Tree
hierarchical data
structure.The
runtime
complexity
ofthe
algorithmis
dependent
onthe
complexity
ofthe
the
scene underanalysis,
ratherthan the
image
size.Because
the
algorithmis
quitegeneral,
it
canbe
usedto
obtain a convenientdata
structurefor
a wide range ofdifferent
pattern recognition and scene analysistasks
andimage
types.
A
commonarea of exploration
is
region approximationusing
quadrant connectivity.This
concept can
be
further
developed into
a split-and-merge algorithm, asmentionedin
section
2
[Klinger].
Another
potential area ofinvestigation
wouldbe
to
apply
the
REFERENCES
[Arnemann]
S.
Arnemann
andM.
Tasto,
"Generating
halftone
pictures ongraphic computer
terminals using
runlength
coding", Computer
Graphics
andImage
Processing,
vol.2,
pp.1-11,
1973.
[Firschein-1]
O.
Firschein
andM. A.
Fischler,
"Describing
andabstracting
pictorial
structures",
Pattern
Recognition,
vol.3,
No.
4,
Nov. 1971.
[Firschein-2]
O.
Firschein
andM.
A.
Fischler,
"A study
in
descriptive
representation of pictorial
data",
Pattern
Recognition,
vol.4,
No.
4,
Dec. 1972.
[Gonzalez]
Gonzalez
andWintz,
"Digital
Image
Processing
2nd
ed",
Addison-Wesley,
1987.
[Gargantini-1]
I.
Gargantini, "Translation,
rotation and superposition oflinear
quadtrees",
Communication
ofthe
ACM,
pp
253-263,
1982.
[Gargantini-2]
I.
Gargantini,
"An
effectiveway
to
representquadtrees", Com.
ofthe
ACM,
vol.25,
No.
12,
pp 905
-910,
Dec. 1982.
[Hunter-1]
G.M.
Hunter
andK.
Steiglitz,
"Operations
onimages using
quadtrees",
IEEE
Transactions
onPatterns Analysis
andMachine
Intelligence,
vol.2,
pp.145
-153,
April 1979.
[Hunter-2]
G.M.
Hunter
andK.
Steiglitz,
"Linear
transformation
of picturesrepresented
by
quadtrees".
Computer
Graphics
andImage
Processing,
vol.10,
No.
3,
pp.289
-296,
July
1979.
[Jarvis]
J.F.
Jarvis,
C.N.
Judice
andW.H.
Nike,
"A survey
oftechniques
for
the
image
display
of continuoustone
pictures onbilevel
display",
Computer
Graphics
andImage
Processing,
vol.5,
pp.13
-40,
Mar.
[Klinger]
A.
Klinger
andC.R.
Dyer, "Experiments
on picturerepresentation
using
regulardecomposition",
Computer Graphics
and
Image
Processing,
vol.5,
pp.68-105,
Mar. 1976.
[Knuth]
D.E.
Knuth,
"The
Art
ofComputer Programming: Fundamentals
of
Algorithms".
[Limb]
S.O.
Limb
andI.G.
Sutherland,
"Run-length
coding
oftelevision
signals", Proc.
IEEE
53,
pp.169-170,
Feb. 1965.
[Pavlidis-1]
S.L
Horowitz
andT.
Pavlidis,
"Picture
segmentation
by
atree
traversal
algorithm",
J. Ass.
Computing
Mach.,
vol.23,
pp.368
-388,
April 1976.
[Pavlidis-2]
T.
Pavlidis, "Algorithms
for
Graphics
andImage
Processing",
Computer
Science
Press,
1982.
[Pavlidis-3]
T.
Pavlidis
andS.L.
Horowitz,
"The
use of algorithms of piecewiseapproximations
for
pictureprocessing
applications",
ACM
Transactions
onMathematical
Software,
vol.2,
No.
4,
pp.305
-321,
Dec.
1976.
[Pavlidis-4]
T.
Pavlidis,
"Analysis
of setpatterns", Pattern
Recognition,
vol.1,
Nov.
1968.
[Pavlidis-5]
T.
Pavlidis,
"Structural
pattern recognition:Primitives andjuxtaposition
relations,
in
Frontiers
ofPattern
Recognition
(S.
Watanabe, Ed.),",
Academic
Press,
New York 1972.
[Rosenfeld-1]
A.
Rosenfeld,
"Connectivity
in Digital
Pictures",
J.
ACM,
vol17.,
No.
1,Jan.
1970.
[Rosenfeld-2]
A.
Rosenfeld,
"Figure
extraction,
in Automatic
andClassification
ofImages
(A.
Grasselli,
Ed.)"[Samet-1]
H.
Samet,
"Applications
ofSpatial
Data
Structures",
Addison-Wesley,
1990.
[Samet-2]
H.
Samet,
"Design
andAnalysis
ofData
Structures",
Addison-Wesley,
1989.
[Samet-3]
H.
Samet,
andR.
Webber,
"Hierarchical
Data Structures
andAlgorithms
for Computer
Graphics",
IEEE Computer Graphics &
Application
, pp.48
<