Rochester Institute of Technology
RIT Scholar Works
Theses
Thesis/Dissertation Collections
1988
The Representation of symmetric patterns using
the quadtree data structure
Lucia Lodolini
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
Rochester Institute of Technology
School
of CmpJter Science
am
Technology
'!he
Representatioo of SyrmEtric Patterns
USing
the ()Jadtree oata Structure
by
Lucia
Lodolini
A
thesis,
subnitted
to
"'" Faculty
of
the
School
of Colplter Science
am
_ l o g y ,
in
partial
fulfil.J.mmt of the requirenents for the degree of
Master of science in CClrpJter SCience.
Approved
by:
Professor Peter
G.
Ai'rlerson
professor
Guy
JOhliSElI'i
Professor
dids
cante
Hierarchical data structures for image representation have been
widely explored in recent years. '!hese data structures are
based
on
the principle of "recursive decOO'p)sition" of an image region. '!he II'Ost
CCl1I'IDIl1y mentioned picture data structure for two-dimensional data is
referred to as a "quadtree".
Keywords
am
Phrases
Table
ofContents
1.
PRELIMINARY
INFORMATION
Title
andAcceptance
Page
Abstract
Keywords
andPhrases
Table
ofContents
2.
INIRCDUCTICN AND BACKGROUND
1
2.1.
IVfo-dimensional
Image Decomposition
3
2.2.
Quadtree Data Structure
7
2.2.1.
Quadtree Operations
11
2.2.2.
Space Considerations
14
2.2.3.
Conversion Algorithms
17
2.2.3.1.
Binary Array
to Quadtree Conversion
17
2.2.3.2.
Raster
to Quadtree Conversion
20
2.2.3.3.
Quadtree to
Raster Conversion21
2.3.
Quadtree
Normalization26
2.3.1.
Normalization
withRespect
to
Translation, Rotation,
and
Size
27
2.3.2.
Normalization
withRespect to Translation
Only
29
2.4.
Symmetry
Overview
33
2.4.1.
PlaneSymmetry
Groups
33
2.4.2.
Symmetry
andQuadtree
Representation42
3.
FUNCTIONALSPECIFICATION
49
4.
SOFTWARE SPECIFICATICNS
54
5.
CONCLUSIONS
60
5.1.
Problems
Encountered andSolved
70
5.2.
Discrepancies andShortcomings
ofthe System
73
5.3.
Suggestions
for
Future Extentions
83
5.3.1.
Triangular Decomposition83
5.3.2.
Non-Regular Decomposition84
5.3.3.
Symmetry
Detection85
5.3.4.
Pattern Modification86
6
. IMPROVEMENTSTO
THE QUADTREEREPRESENTATION
88
6.1.
LinearQuadtree
88
6.2.
Quadcodes91
6.3.
One-To-Four Structure92
APPENDIX
95
2.
INTRODUCTTCN AND BACKGROUND
The
idea for
this thesis
stemmedfrom
adual interest in
the
use of
hierarchical
data
structuresto
representimage
data,
andin
the
generation of patterns
belonging
to the
seventeen classes oftwo-dimensional
plane symmetry.It
is
an attemptto
join
two
areasthat
appear
to
have
somerelationship;
the
recursive subdivision oftwo-dimensional image
areas,
andthe
representation of patternsthat
arecharacterized
by
a singletiling
propagated acrossthe
plane.It
appearsthat
there
is
somebenefit in using
ahierarchically-based
image
schemeto
represent symmetric patterns.
Image
data
representedhierarchically
is based
onthe
idea
of recursively
dividing
a picture regioninto
smaller and smaller regionsaccording
to
some criterion untilfurther
subdivisionis
notpossible,
necessary,
ordesired.
This
conceptis known
as"recursive
decomposition"[SAME84b].
Aclass of
hierarchical data
structureknown
as a "quadtree"has generally
been
usedto
apply
this
conceptin the
area ofimage
processing.Hierarchical representation of
image data has
been
widely
exploredin
recent yearsfor
several reasons.It
is
a means offocusing
on areas ofinterest
in
apicture,
whilebeing
ableto
discard
those
regionsthat
are not ofinterest.
In otherwords,
any
geographical part ofthe
image may be
accessed rapidly.This
ability
to
focus
canlead
to
improved
executiontimes
for
pictureoperations, as compared
to
some schemes[SAME84b].
The
tendency
for
mostimages
to
containhomogeneous
areasis
the ability
to
compressthe
storage ofhomogeneous
areas.Other
commonimage
representationsmay be
lacking
in
one orboth
ofthese
capabilities;although a run-length
encoding
or chain code providesimage
compression,such
local
representationsdo
notinherently
containinformation
relating
to the
global structure ofthe
image,
making
certainimage
operationsdifficult.
The
popularbinary
array
representation provides neitherglobal structure
information
or compression.Due
to
its hierarchical
nature,
numerous operations canbe
performed on an
image using
well-defined recursivealgorithms,
in
the form
of
tree
traversals.
It
is
true,
however,
that
many
operations canbe
performed as well or
better in
other schemes[SAME84b].
In
general,
ahierarchical
approachto
image
representationis
a
conceptually
clearway
ofthinking
of animage:
"A
characteristic ofthe
human
picture analysis processis
ahierarchical
type
offunctioning.
People
first group data
in
perceptuallevels;
these
arethen
further
groupedinto
subdivisions.
Experiments conducted.. .onthe
ways wedescribe
aerial
terrain
photographs-or,
in
general,
complex pictures concludedthat
(1)
if
a picturehas
a centraltheme,
we respondto
it
and relate other portionsto
it
and(2)
if
a picturehas
no central
theme,
but is
totally
diffuse,
we partitionthe
pictureinto
quadrants("upper right,",
"upper
left," etc.) and eitherdescribe
each regionseparately
orthe
objects withinthe
quadrants andtheir
relationships."[ALEX
andKLIN-78]
It
may be
useful atthis
pointto
describe
some ofthe
applicationscurrently
implemented
using hierarchical image data
structures.As
waspreviously
mentioned, a characteristic ofhierarchical
image
schemesis
anability
to
concentate on areas of relevancein
a picture.
This trait
makeshierarchical
image
techniques
naturalfor
of a number of
different
types
of maps representedhierarchically. Sample
queries on
the
data
base
are putforth,
whose solutionsinvolve
anintersection
operation ontwo
maps.A
typical
query
mightinvolve
finding
all regions where corn
is
grownthat
are within400
and600-foot
elevationlevels.
An
efficient solutionis
possibleby
intersecting
a contourmap,
divided into 50-foot
intervals,
with aland
usemap classifying
areas
according
to
crop
growth.The
global nature ofthe
data
structure makesit
possibleto
eliminatefrom
considerationthose
areas wherewheat
is
grown.(A
general algorithmdescribing
the
intersection
oftwo
images
represented as quadtrees canbe found
in the
section2.2.1.)
Other
areas where ahierarchical
approachto
image
representationhas been
used arehidden
surfaceelimination,
robotics,animation,
andexpert vision systems
[SAME84b].
It
shouldbe
notedthat the
idea
of recursiveimage decomposition
extends
to three
dimensions
with adata
structureknown
as an octree[MEAG82],
usedchiefly in
the
decomposition
of volumedata.
2.1.
Two-dimensional Image DecompositionIt
wouldbe beneficial
to
precedethe
discussion
of specifichierarchical
data
structures with abrief background
oftwo-dimensional
grid
decomposition
(refinement).
A "tiling" of a
two-dimensional
plane refersto
a set oftiles
that
coverthe
plane without gaps or overlaps.Such
patternshave been
apart of
human
activity
since prehistorictiroes.
subject of mathematical research
(Johannes
Kepler
first investigated
suchtilings
morethan
350
yearsago.)
[GRUN
andSHEP-77]
Stated
moreformally,
if
K
denotes
the
number of sides of a cellin
apartition,
andV
is
the
number of cellsmeeting
at avertex,
KV
regulartesselations
describe
those
wherethe
value ofK(V)
is
the
samefor
allcells
(vertices).
All
cells are regular polygons[AHUJ83].
Of
particularinterest in
the
area ofimage processing is
a subsetof
this
class oftilings,
or,
those
tilings formed
by
congruent copies of a single regularpolygon,
shownin
Figure
2.
A. There areonly
three
possibleKV
regulartilings
that
satisfy
this restriction,
as statedin
[GRUN
andSHEP-77]:
"The only
possible edge-to-edgetilings
ofthe
planeby
mutually
congruent regular convex polygons arethe three
regulartilings
by
equilateral
triangles,
by
squares,
orby
regular hexagons."In
K(V)
notation,
these three
areknown
as3(6)
(regular
triangle),
4(4), (square),
and6(3),
(hexagonal).
[AJUH83]
lists
the two
propertiesdesirable for any
planardecomposition
schemefor image
representation:a. The pattern used
to
partitionthe
plane should repeatinfinitely.
b.
It
shouldbe
possibleto
decompose
the
partitioninto
smallerand smaller versions of
the
same pattern.Another
way
to
describe
the
secondproperty is
to
say
that
the ability
mustexist
to
partition each cellfurther into
smaller cells suchthat the
newtesselation
is
still aKV
regulartesselation
having
the
sameK(V)
values
[AJUH83].
All
three
ofthe tesselations in Figure
2.A
satisfy
the
first
hexagons [AHUJ83].
The
failure
ofthe
secondproperty for hexagonal
tesselations
makesit less
attractivefor image processing
applications,
in
the
sensethat
the
smallest resolutionfor
the
image
mustbe
predetermined.
Tilings that
satisfy
the
secondproperty
are called"unlimited";
the
hexagonal
grid exampleis
therefore
a "limited"tiling
[SAME84b].
The
two
"most
appropriate"[AJUH83]
configurationsfor image
subdivision,
square andtriangular
tilings,
differ in
terms
ofadjacency
and orientation.
Several
definitions relating
to these
properties aregiven
in
[BELL83,
et al.]:Two
tiles
are saidto
be
neighborsif
they
are adjacent eitheralong
an
edge,
or a vertex. Atiling
is
uniformly
adjacentif
the
distances
between
the
centroid of onetile
andthe
centroid of allits
neighbors arethe
same.The
adjacency
number of atiling
is
the
number ofdifferent intercentroid
distances between any
onetile
andits
neighbors. The squaretiling
has
two
adjacency
distances,
wherethere
arethree
for
the triangular tiling.
Only
the hexagonal
tiling
is
saidto have
uniform adjacency.Tiles
withthe
same orientation canbe
mapped onto each otherby
atranslation
that
does
notinvolve
rotation or reflection. Adecompos
ition based
on squaresis
saidto have
"uniform
orientation",
i.e.
allfour
regionshave
the
same orientation. Thisis
notthe
casein
the
triangular
scheme;
there
is
one node out offour
wherethe
orientationdiffers from
the
remaining
three
siblings[AHUJ83].
Issues
relating
to two-dimensional
planedeccmposition
as appliedto
image
representation arediscussed in
greaterdetail in
[AHUJ83]
and[BELL83,
et al.].based
on a squaregrid,
whichis
discussed in detail in
the
next section.Triangular
decomposition
willbe described
to
alesser
extent.(3*)
(*)
V>*)
Figure
2.
A.
Three
regulardecompositions
(square, triangular, hexagonal)
[GRUN
andSHEP,
77]
2.2.
Quadtree
Data
Structure
The
term
quadtreeis
usedto
describe
a class ofhierarchical
data
structures.In
image
processing, the
motivating
principleunderlying
such a representation
is
the
"recursive
deccmposition"of two-dimensional
space,
previously
discussed.
A
general quadtree schememay be described in
the
following
way:
Given
animage
region of size2**n
by
2**n,
it is
possibleto
recursively
divide
the
regioninto
areas of one-halfthe
previoussize,
continuing
this
until some conditionis
reachedthat
will signalterm
ination
ofthe
process. The condition we will useis
arrival atthe
level
ofindividual
BLACK orWHITE pixels,
althoughit is
possibleto
useother
image
attributesfor
this
purpose. An attributecommonly
mentionedis
the
averagegray
scaleinformation in
a picture.In
a quadtreerepresentation,
eachtree
node correspondsto
aregion of
the
image,
generally
square,
withthe
root ofthe tree
representing
the
entire picture.Any
tree
node willhave
eitherfour
descendents labelled
NW,
NE,
SW,
SE,
which representfour
orderedquadrants within
the
parentregion,
or nodescendents (a
terminal node,
orleaf).
A node value ofGRAY
is
usedto
designate
a non-homogeneousregion,
or,
a regionthat
requiresfurther
refinement. BLACK orWHITE
leaves
represent a
homogeneous
region ofthe
picturethat
need(can)
notbe
subdivided
further. This
general schemeis
shownin
Figure
2.B.
Thequadtree root will reside at
level
n of a quadtree usedto
represent awhich
designates
the
level
ofindividual
pixels.A
node represents aregion of size
2**1 if it is found
atlevel 1 in
the
tree,
i.e.
the
regionis
of sidelength 2**1.
A
brief
overview ofthis
method as appliedto triangular
areasis
nowgiven,
as presentedin [AHUJ83].
To
recursively
decompose
animage into
equilateraltriangles,
eachtriangle
is divided into four
others.The
method ofdivision
is
shownin
Figure
2.C.
The
data
structure usedto
expressthis
canbe
a referredto
as aquadtree,
as each nodecorresponding
to
atriangular
regionhas
four
children. Eachtriangular
nodehas
three
neighbors, and eachtriangle
has
one oftwo orientations,
differing by
60
degrees.
Inthis
scheme,the triangle
in
the
centerdiffers in
orientationfrom
the
parent node.Its three
siblingshave
the
same orientation asthe
parent. Thebasic
structure of
the
algorithmsusing
square or triangulartilings
may be
the
same since
both involve
quadtrees.The
complexity
ofimage
operationsin
both
types
of quadtree also appearsto
be
the same,
as shownin
[AHUJ83].
In general, square
images
willbe
mostcompactly
described
as squarequadtrees,
whiletriangular
images
are mostcompactly described
astriangular
quadtrees.In addition
to the
equilateral triangle-based subdivision,[EL0O86,
et al.]have described
othertriangular
decompositions
referedto
as scalene(ternary),
scalene(hexary),
foveal
(triangular)
andfoveal
(square).
An application common
for
triangular
decompositions
is in
the
field
of cartography; such
triangular
structureshave
been
usefulfor
fitting
spherical shape are
the
dodecahedron
andicosahedron,
whichboth
requiretriangular
decomposition
[ELC086,
et al.].In
[YAMA84,
etal.],
a triangularsubdivision
is
usedto
generate anisometric
view of a three-dimensionalobject represented as an octtree.
Such
an applicationis
frequently
usefulin
the
field
of engineering.The
quadtreedata
structuredescribed
thus
far unfortunately
requires much overhead.
Given
a quadtreethat
contains B +W (BLACK
+
WHITE)
tree
nodes,
an extra(B
+W
-1) /
3
nodes are requiredto
store
its internal
GRAY
nodes[SAME84b].
Furthermore,
a substantialmajority
ofthe
storageis
usedto
accommodatethe
pointersto
a node'schildren. A great
deal
of attentionhas
therefore been
focused
onschemes
that
willimprove
storagerequirements,
mostly
by
reducing
oreliminating
the
needfor
pointers. Several ofthese
schemes aredescribed
in
Section
6.
From
this
pointon,
we will assume a squaredecompositon
method aso
Gray
? Whit*
Black
Root
Figure
2.B.
An
8x8
pixelimage
andits
quadtree representation[OttE
andAGGA,
84]
:/'^
Figure
2.C.
Example of regionsin
atriangular
griddecomposition
[AHUJ83]
[image:15.551.67.496.72.252.2]-2.1.1.
Quadtree
Operations
A
naturalby-product
ofthe
quadtreedata
structureis
the
ability
to
perform numerousimage
operationsin
the
form
oftree
traversals. The
computation performed at
the
nodeis
generally
the
distinguishing
factor
between operations,
although one operationmay be
modifiedby
changing
the
traversal
order ofthe
nodes.The
raster output of a quadtree-encodedimage
is
an example ofthis.
(Pseudocode
for
a quadtreeto
rasteralgorithm appears
in
Section
2.2.3.3.)
The
drawing
andtable
below
showthe
possibletransformations
of animage
achievedby
changing only
the
order
in
which quadtree nodes aretraversed
before
output[STEW86].
(This
will
be
the
basis for
the
generation of patternsaccording
to
selectedplane
symmetry
classesin
Section
3.)
BB
0
(NW)
2
(SW)
XX
1
(NE)
3
(SE)
B
YY
AA
OPERATION
PERFORMEDQUADRANT ORDER
(No
operation)0
1
2
3
90 degree
rotation clockwise2
0
3
1
180 degree
rotation3
2
1
0
270 degree
rotation clockwise1
3
0
2
Reflection about X XX
1
0
3
2
Reflection about Y YY
2
3
0
1
Reflection about A AA
0
2
1
3
Several
quadtree algorithms are nowdescribed
to
provide examplesof
the
type
of recursive operationstypical to this
data
structure.Set
Operations for Quadtrees
[SAME84b]
As
was mentionedin
Section
2,
the
quadtreeis particularly
suitedto
perform set operations onimages.
The UNION
operation ontwo
images
represented as quadtrees can
be described algorithmically
asfollows
[SAME84b].
Input
consists oftwo
quadtreesrepresenting images
ofthe
samesize,
A andB.
(Xitput
willbe
athird
quadtreeU, containing
the
union oftrees
A andB.
Both
input
trees
aretraversed
in
parallel.If
node A or node Bis
BLACK,
the
resulting
nodein
U
is
BIACK.
If
nodeA
and node Bis
GRAY,
the
resulting
nodein
U
is
GRAY,
and recurse
to the
children ofthe
nodes. Inthis case,
it is
necessary
to
checkfor
a merge situationin the
outputtree,
i.e. four
BIACK
sibling
nodesthat
have been
createdfrom the
union ofthe two
subtrees.If
one nodeis
GRAY
andthe
otherWHITE,
the
resultis
the GRAY
node andits
subtree.The INTERSECTION algorithm
is
analogousto that
ofUNION,
wherethe
attribute WHITEis
substitutedfor
each occurrence of attributeBLACK.
Both algorithms
have
an executiontime
proportionalto the
minimumnumber of nodes at
corresponding levels
ofthe two
input
trees.
If
construction of
the
outputtree
is
included in the algorithm, the time
becomes
proportionalto the total
number of nodesin
the two trees
[SAME84b].
-Superposition
ofTwo
Quadtrees [HUNT
andSTEI-79a]
The
purpose ofthis
algorithmis
to
output animage
representedby
TREEUPPER
overthat
ofTREELOWER.
Two
quadtreesrepresenting
images
ofthe
same size(TREE
UPPER,
TREEJJCWER)
areinput.
Output
is
atree
consisting
the
superposition of
TREEUPPER
overTREE_LOWER.
Traverse the two
input
trees in
parallel.When
aleaf is
visitedin
eithertree,
do
one ofthree things:
CASE
1:
BOTH NODES ARE LEAVES.
If
leaf
ofTREEJUPPER
is
transparent,
do
nothing.If
leaf
ofTREEJUPPER
is
opaque,
replacethe
leaf
TREE_LCWER
withthat
of TREEJUPPERCASE
2:
LEAFIN
TREEJUPPER,
PARENT IN
TREELOWER.
If
leaf
ofTREEJUPPER
is
transparent,
cfo nothing.If
leaf
ofTREEJUPPER
is
opaque,
replace TREEJuOWER node(and therefore
alldescendents)
withTREEJUPPER.
Continue
asthough the
descendents
of TREE_LOWERhave
already been
processed.CASE
3:
PARENT
INTREEJUPPER,
LEAFIN TREE_LOWER.
Replace
leaf
of TREEJJOWERwith parent of treejjpper.Replace
subtreein
TREE UPPER with"transparent
leaves". Aftertraversing
the suBtree,
continue paralleltraversal
of
two trees.
Image
ApproximationUsing
Quadtrees
[SAME84b]
The
"inner" or "outer" approximation of animage
canbe displayed
as
follows.
Beginning
at a selectedlevel
ofthe
tree,
output allGRAY
nodes as WHITE
(inner
approximation) or BLACK(outer
approximation).This
will resultin
avery
rough picture approximation.A method
that
will yield a more subtle approximation ofthe
image
is
referredto
as quadtreetruncation
[SAME84b].
Beginning
at acertain
level in
the
tree,
treat
GRAY nodes as BLACK orWHITE,
depending
2.2.2.
Space
Considerations
Dyer
[DYER82]
has
analyzedthe
spaceefficiency
of quadtrees.By
moving
a square of size2**m
by
2**m
to
all possible positions within a2**n
by
2**n
grid,
he has
producedthe
following
table
of results:NODE
TYPE
BEST
CASE
BLACK
WHITE
GRAY
TOTAL
1
3(n
-m) n -m4(n
-m)
+1
WORST
CASE
3(2**m+l
-m)
-5
3(2**m+l
+4n
-3m
-5)
2**m+2
+4(n
-m)
-7
2**m+4
+16(n
-m) -
27
AVERAGE
CASE
0(2**m+2
-m)0(2**mf2
+ n-m)
0(2**m+2
+ n-m)
0(2**rof2
+ n-m)
0(2**itH-2
+ n-m) represents space
efficiency
onthe
order ofthe
region'sperimeter plus
the
log
ofthe
image diameter.
It
shouldbe
notedthat
squareimages
areparticularly
well-suitedto
a square quadtree representation.While this
is
nottrue
of allimages,
the
results ofthe
experimentation nonethelessimply
that
any image
woulddisplay
similarbehavior in
terms
of average spaceefficiency [DYER82,p.347].
In
terms
of spaceefficiency,
a worst-case situation occurs whenthe
image
consists of a checkerboard pattern of pixels.Such
atree
wouldrequire
the
maximum number of nodes(4
x[N**2
-1] / 3,
whereN
is
apower of
two)
sincethere
are nohomogeneous
areasto
compress abovethe
level
ofindividual
pixels.See
Figure2.D.
Abest
case situation wouldbe
the trivial
case of a solid BLACK or WHITEsquare,
which wouldbe
represented
by
a single node.Space
requirementsfor
the
quadtree canbe
the
image.
As
the
resolutionis
doubled,
the
quadtree growslinearly
in
the
number of nodes.The
samedoubling
ofthe
resolutionin
abinary
array
representation will quadruple
the
number of pixels[SAME84b].
-UJ,
(0
s
in
2 <<
a
o'
CD
O
i at
Figure
2.D.
A
checkerboard pattern andits
quadtree,
representing
worst-case quadtree spaceefficiency
[SAME84b]
[image:21.551.105.410.21.589.2]-2.2.3.
Conversion Algorithms
Most
digital images
aretraditionally
represented asbinary
arrays,rasters
(run-lengths),
boundaries
(chain codes),
or polygons(vectors),
with
the
binary
array
asprobably
the
most common representation[SAME84b].
Techniques
are neededto
switchbetween
the
various representations andquadtrees easily.
Below,
algorithmsdescribing
conversionfrom
binary
arrays and raster representations
to
quadtrees are given.A
chain codeto
quadtree conversion can
be found in
[SAMESOa],
andissues relating
to the
representation of vector
images
as quadtrees arediscussed
in
[HUNT78],
[HUNT
andSTEI-79a],
and[HUNT
andSTEI-79b].
We will
initially
need away to
encode animage
as a quadtree,and
to
outputthis
image
afterit
is in
quadtreeform.
Inboth
processes,the
data
structure of atree
node consists of sixdata fields.
Thereis
apointer
to the
parent of anode,
four
ordered pointersto
its descendents
(labelled
NW, NE, SW, SE),
and a NCDETYPEfield
with possible values ofBLACK,
WHITE orGRAY.
The parent ofthe
root nodeis
setto
NULL.2.2.3.1.
Binary Array
to
Quadtree Conversion[SAME80]
This
algorithm assumesthe
presence ofthe
entireimage
in
abinary
image
array. Each pixelis
visitedonly
onceby
the algorithm,
in
a manner analogousto
a postordertraversal.
The orderin
whichthe
pixels are visited
is
shownin
Figure2.E.
Although a simple
way
ofaccomplishing this
conversion wouldbe
to
createevery
nodein
the
tree,
and performthe
merging
of redundant-nodes
in
a secondpass,
space requirements couldeasily become
excessivefor
the
amount of available memory.Therefore,
a quadtree nodeis
createdonly in
a situation wherethe corresponding
region ofthe
image is
maximal;
in
otherwords,
the
algorithmwill never createfour
nodesfor
children of
the
sameN0DE7IYPE;
only
the
parent noderepresenting the
areawill
be
createdin
this
situation.The
driver
routineis invoked
withthe
highest level
ofthe tree
(level
nfor
a2**n
by
2**n image
region),
and a globalimage
array. Ifthe
entireimage is
BLACK orWHITE,
the
procedure creates a single nodetree
andfinishes.
If
this
is
notthe case,
controlis
passedto
a procedure
designed
to
constructthe tree.
The procedure examinesevery
pixeland creates nodes whenever all
four
children are not ofthe
sametype.
Pseudocode
for
the
binary
array
to
quadtree algorithmis
nowgiven,
as presentedin [SAME80].
Some
variable nameshave
been
changedfor
clarity's sake.node procedure QUADTREE
(LEVEL);
/* Findthe
quadtreecorresponding to
a2**LEVEL
by
2**LEVEL
binary
array
B_ARRAY*/
begin
integer
valueLEVEL;
/* B_ARRAYis
global*/
global Boolean
array B_ARRAY[1:2**LEVEL,
1:2**LEVEL];
quadrant
QUADl;
pairPAIR;
nodeN0DE1;
PAIR <- CONSTRUCT
(LEVEL, 2**LEVEL, 2**LEVEL);
if TYPE(PAIR)
=GRAY then
begin
/*Image
is
GRAY
*/
FAIHER(POINTER(PAIR))
<-NULL;
return
(POINTER(PAIR));
endelse
begin
/* The entireimage is
BLACK or WHITE*/
N0DE1 <-CREATENCDE(
)
;
NODETvpE(NCDEl)
<-TYPE(PAIR)
;FATHER(NODEl)
<-NULL;
return
(NCDEl);
end;
end;
pair procedure
OCNSTRUCT
(LEVEL,X,Y);
/*Construct the
portion of a quadtree of size
2**LEVEL
by
2**LEVEL
having
its
southeastemmost pixelcorresponding
to
entry
B_ARRAY[X,Y]
ofthe
image
array. B_ARRAYis
a globalvariable.
*/
begin
integer
valueLEVEL,X,Y;
/*
P_ARRAY
has
entriescorresponding
to
NW, NE,
SW,
SE*/
pair
array
P_ARRAY[NW.
..SE];quadrant
QUADl,
QUAD2;
node
NCDEl, N0DE2;
if
LEVEL
-0
then
/* processthe
pixel*/
/*
<
, > creates a
(POINTER,
TYPE)
pair*/
return
(<OOLOR
(B_ARRAY[X,Y]),
NULL>)
else
begin
LEVEL <-
LEVEL
-1;
P_ARRAY[NW]
<-OCNSTRUCT
(LEVEL,
X-2**LEVEL, Y-2**LEVEL)
;P_ARRAY[NE]
<-OCNSTRUCT
(LEVEL,
X, Y-2**LEVEL)
;P_ARRAY[SW]
<-OCNSTRUCT
(LEVEL,
X-2**LEVEL,Y)
; PARRAY[
SE]
<~ OCNSTRUCT(LEVEL,
X,
Y)
;il
TYPE
(P_ARRAY[NW] )
<> GRAY
andTYPE
(P_ARRAY[NWJ)
= TYPE(P_ARRAY[NE] )
=TYPE
(P ARRAY[ SW])
= TYPE(P_ARRAY[SE]
)
then
return
Tp_ARRAY[NW]
)
/* All siblings are ofthe
sametype
*/
else
begin
/* Create a non-terminal GRAY node*/
NCDEl <-CREATENODE(
)
;
for
QUADl
in
{NW,NE,SW,SE}
do
begin
if TYPE(P_ARRAY[ QUADl])
=GRAY
then
/*
link
P_ARRAY[ QUADl]
to
its
father
node*/
begin
SCN(N0DE1, QUADl)
<- POINIER(PARRAY[
QUADl]
);
FATHER(POINTER(P_ARRAY[QUADlT))
<-NODEl;
endelse /*
Create
a maximal nodefor
P_ARRAY[
QUADl] */
begin
N0DE2 <-
CREATENODE(
)
;NCDETYPE(N0DE2)
<- TYPE(
P_ARRAY[
QUADl]
)
;for
QUAD2
in
{NW,NE,SW,SE}
do SON(N0DE2,QUAD2)
<-NULL;
SON( NODEl, QUADl)
<-N0DE2;
FATHER(N0DE2)
<-NCDEl;
end;
NODETYPE(NCDEl)
<-GRAY;
return(<GRAY,NODEl>);
end;
end;
end;
The
running
time
ofthis
algorithmis
proportionalto the
number of pixels
in
the
image.
The
maximumdepth
of recursionis
equalto the
log
ofthe
image diameter
[SAME80].
2.2.3.2.
Raster to
Quadtree Conversion
[SAME81]
In
the
eventthat
anincoming
image is
too
large
to
be completely
present
in
core asis
requiredby
the
abovealgorithm,
adifferent
approach must
be
usedto
build
the
quadtree.Raster to
quadtree conversionviews
the
incoming
picturein
a rowby
rowfashion,
starting
withthe
first
row.Pixels
are visitedby
the
algorithmin
the
order shownin
Figure
2.F.
Underlying
this
algorithmis
the
assumptionis
that
atany
instant
oftime,
a valid quadtree structure willexist,
withany
unprocessed pixels assigned
the
value ofWHITE. Nodes
are mergedinto
maximal
blocks
asthe
quadtreeis
built,
making it unnecessary
to
consolidate nodes at a
later
time
in
a separatemerging
pass.Processing
an odd-numbered row requiresless
workthan
processing
even-numbered
row,
since nomerging
of nodesis
possiblein
an odd row. Anode
is
createdfor
each pixel visitedin
an cdd-numbered row.As
the tree
is
constructed,
non-terminal nodes must alsobe
added withthe
appropriatenumber of
WHITE
siblingsto
satisfy
the
requirement of a validtree
complicated,
since nodemerging
may
alsotake
place.A
checkfor
apossible node merge must
be
performed atevery
even-numbered pixelin
aneven-numbered row.
(Once
one mergeoccurs,
it is necessary
to
checkfor
merges
farther up
the
tree.)
This
algorithmis
suitablefor
use with a run-length representationof a picture.
The
time
complexity is
proportionalto the
number ofpixels
in
the
image,
as provenin [SAME81].
2.2.3.3.
Quadtree to Raster Conversion
[SAME84a]
The
following
algorithmwith pseudocode will outputthe
quadtreerepresentation of an
image
to
a rasterdisplay
device.
This
algorithm operates as abottom-up
inorder
tree traversal.
Eachrow of pixels
is
visitedin
sequence. For each rowin
the
rasterdisplay,
every
BLACK or WHITEtree
nodecorresponding
to
a regionblock
whichintersects
the
rowis
visitedfrom left
to
right. Each BLACK and WHITEnode at
level
Lin
the tree
is
therefore
visited2**L
times
(its
height in
pixels).
The
result of each visitis
a BLACK or WHITE pixel run oflength
2**L
outputto the
rasterdisplay.
The
only
node visitthat
begins
atthe
root ofthe
quadtreeis
the initial
visitto the
northwesternmostblock in
the
image.
The
algorithm proceeds
to the
next rowby
using
the
tree
structureto
locate
the
southern neighborblock,
ratherthan
beginning
the
searchfor
the
nextrow at
the
root ofthe tree
eachtime.
Pseudocode
for
a quadtreeto
raster conversionfollows,
as givenprocedure
QUADJTOJRASTER
(ROOT,
LEVEL)
/*
Output
a raster representation ofthe
2**LEVEL
by
2**LEVEL
image corresponding
to the
quadtree rooted at nodeROOT.
For eachrow,
the
leftmost block is located
andthen the
blocks
comprising
the
row are visitedin
sequenceby
ascending
anddescending
the
appropriatelinks in the
tree. Successive
blocks
in
the
verticaldirection
arelocated in
the
same manner*/
begin
value node
ROOT;
valueinteger
LEVEL;
nodeNODEl
,N0DE2;integer
ROW,WIDTH,Y;
NODEl
<-ROOT;
WIDTH
<-2**LEVEL;
/*
Find
the
leftmost block containing
row0
*/
FIMBLOCK(NDDE1,0,WIDTH,0,WIDIH,WIDTH)
;Y <-
0;
do
begin
for
ROW <-Y
step 1
until Y + WIDTH -1
do
OUTROW(NCDEl,ROW,L0G2(WIDIH)
)
;/* L0G2 returns
the
log
of WIDTHto base 2
*/
Y <-Y
+WIDTH;
/*
Find
the
leftmost
block
containing
row Y*/
GTEQUAL_ADJ_NEIGHBOR(
NODEl,
'S',N0DE2,LEVEL)
;WIDTH <-
2**LEVEL;
if GRAY(N0DE2)
then FINDBIXX^(N0DE2,0,WII>TH,Y,Y-fWIDTH,WIDTH);
NCDEl <-
N0DE2;
end
until
NULL(
NODEl);
end;
procedure FTNDBLOCK
(NODE,X,XFAR,Y,YFAR,WDTH)
;/* NODE
is
the
root of ablock
of widthWDTHhaving
its
lower
rightcorner at
(XFAR-1,YFAR-1).
If NODEis
BLACK orWHITE,
then
returnthe
values of NODE andWDTH;
otherwise, repeatthe
procedurefor
the
son of NODEthat
has its
upperleft
comer at(X,Y)
*/
begin
reference node
NODE;
value
integer X,XFAR,Y,YFAR;
referenceinteger
WDTH;
quadrantQUAD;
if GRAY(NODE)
then
begin
WDTH <- WDTH
/ 2;
case
QUAD
of'NW'
:
FINDBLOCK(NODE,X,XFAR
-WDTH, Y,
YEAR
-WDTH,WDTH)
;
'NE':
FINDBLOCK(NODE,X,XFAR,Y,YFAR
-WDTH,WDTH)
;'SW':
FINDBLOCK(NODE,X,XFAR
-WDTH,Y,YFAR,WDTH)
; 'SE':
FINDBLOCK(NODE,X,XFAR,Y,YFAR,WDTH)
;end;
end;
end;
quadrant procedure
GETQUAD(X,XCTNTER,Y,YCEMER)
; /*Find
the
quadrant ofthe
block
rooted at
(XCENIER,
YCENIER)
that
contains(X,Y) */
begin
value
integer
X,XCENTER,Y,YCENTER;
return
(if
X < XCENTER then
if
Y < YCENTER then
'NW'else 'SW'
else
if
Y
<YCENTER
then
'NE'else
'SE');
end;
procedure
GIEQUAL_ADJ
NEIGHBQR(N0DE1,DIR,RETN0DE,LEV);
/*
Return
in
RETNODEthe
neighbor of node NCDElin horizontal
orvertical
direction
DIR. LEVdenotes
the
level
ofthe tree
at which node NODElis
initially
found
andthe
level
ofthe tree
at which nodeRETNODE
is ultimately found.
If
such a nodedoes
notexist,
then
return
NULL.
Procedure
ADJ(B,I)
returns TRUEiff
quadrant Iis
adjacentto
boundary
B ofthe
node'sblock.
Procedure
FATHER(P)
returns a pointerto
nodeP's
father.
Procedure
SCNTYPE(P)
returnsthe
specific quadrantin
whichnode P
lies
relativeto
its father.
Procedure
REFLECT(B,I)
returnsthe
SCNTYPE value ofthe
block
ofequal size
that
is
adjacentto
side B of ablock
having
SCNTYPE
value I.
*/
begin
value node
NCDEl;
value
direction
DIR;
reference node
RETNODE;
reference
integer
LEV;
LEV
<-LEV
+1;
if
not NULL(FAIHER(
NCDEl))
andADJ(
NCDEl,
SCNTYPE
(NODEl) )
then
/*
Find
a common ancestor*/
GTEQUAL_ADJ_NEIGHBQR
(FAIHER(NODEl)
,DIR,RETNCDE,LEV)else RETNODE <-
FATHER*
NODEl);
/* Follow
the
reflected pathto
locate
the
neighbor*/
if
notNULL( RETNODE)
andGRAY( RETNODE)
then
begin
RETNODE <-
SCXJ(RETO10DE,RErLErr(DIR,SCNTYPE(NCDEl)));
LEV <- LEV
end;
procedure
OUTROW
(NODE,
ROW, LEV);
/*Output
a rastercorresponding
to
all ofthe
blocks
that
have
segmentsin
rowROW
starting
with nodeNODE
atlevel
LEV.
Procedure OUTPUTRUN
writes a pixel run ofthe
appropriate color and of widthWIDTH to the
screen*/
begin
value node
NODE;
valueinteger
LEV, ROW;
node
TMFNCDE;
integer
WIDTH;
WIDTH
<-2**LEV;
do
begin
OUTPUTRUN(NODETYPE(NODE)
,WIDTH);/*
Find
the
leftmost
adjacentblock containing
rowROW
*/
GIEQUALJ*DJ_NEIGHBOR
(NODE,
'E',TMPNODE, LEV);
WIDTH
<-2**LEV;
if
GRAY(TMPNODE)
then
FTNILOCK(TMFNODE,0,WIDTH,ROW,ROW + WIDTH -
(ROW
MODWIDTH),
WIDTH);
NODE
<-TMPNCDE;
end untilNULL(NCDE);
end;
As
statedin
[SAME84a],
the
algorithm'srunning
time
is
a measureof
the
number of nodes visited, andis
proportionalto the
sum ofthe
heights
ofthe blocks comprising the
image.
The work requiredis
therefore
dependent
onthe
image
complexity.Storage
requirements consist_l_ ,3_
9_
33 35 41Y7_
19 25 27 18 20 26 28 34 37 36 3938 49 50
52 42 45 40 46
2_
23 2951
53 55 5e 6143 44 474859 60 S3 22 24 3C 32 54 56 64
9^
\7_
25 33 41 49 57 JOii
26 34 42 43 5051 5859 20 21 28 29 22 30 3536 44 3738 46 52 60 45 53 61 47 54 55 62 I5_J6 23 24 31^32 3940 48 56 64 632.E.
2.F.
Figure
2.E.
Traversal
order of pixelsin
Binary Array
to Quadtree
Conversion2.F.
Traversal
order of pixelsin
Rasterto Quadtree
Conversion[SAME84b]
Eumpit2
Figure
2.G.
Effect
of smallimage
shift on quadtreedata
structure[SCOT
andIYEN-86]
[image:30.551.55.459.233.610.2]-2.3.
Quadtree Normalization
A
basic
difficulty
withthe
standard quadtree representationis its
extremesensitivity
to the
placement of animage
onthe
grid.Small
differences in image
location,
orientation,
or size parameters willresult
in different
quadtrees.Figure
2.G illustrates
the
effect onthe
quadtree structure of
merely moving
animage
one pixelto the
right andone pixel
down.
To
remedy
the
effect of possible changesin
one or more ofthese parameters,
various "normalization" schemeshave been
proposed,i.e.,
methods of
producing
unique quadtree representations regardless ofthe
positioning
ofthe
originalimage.
Such
normalized quadtrees arethen
suitablefor
applicationsinvolving
pattern matching. As an example ofthis,
[CHIE
andAGGA-84]
storethe
silouettes of eightdifferent
airplanes representedby
normalized quadtrees
in
animage library.
They
then
generate normalized quadtreesfor
"noisy"images
of airplanes(done
by
applying
translations,
rotations,
scalings,
andadding
random noiseto the
airplane silouettebefore
quadtree conversiontakes
place).By
defining
a measure ofdis
similarity
between two
objects(i.e. assigning
adissimilarity
weightto
each
tree
nodebased
onits level
in the
tree),
they
are ableto
calculatethe
dissimilarity
between two
images
by
summing up
these
measures asthe
two trees
aretraversed
in
parallel. Based ontheir experimentation,
they
assert
that
most ofthe
test
planes werecorrectly
matched withthe
correct planein
the
library,
even withthe
addition of90%
noise.another
to
normalizethe
image
with respectto
translation
only.2.3.1. Normalization
withRespect
to
Translation,
Rotation(and
Size)
The
first
approach[CHEE
andAGGA-84]
is
motivatedby
the
conceptsof centroid and principal axes
from
mechanics.These
are geometricproperties of an object
that
areinvariant
to the
location
andorientation of
the
object.Prior to
generation ofthe quadtree,
eachobject
in
animage is
normalizedto
a coordinate system withthe
object'scentroid as
the origin,
and withthe
principal axesbecoming
the
newcoordinate axes.
After the
centroid and principal anglefor
an object arecalculated,
the
objectis
rotated aroundits
centroidby
the
degree
ofthe
principal angle.
(See
Figure
2.H.
)
A quadtree constructedfrom
this
normalized object
is
nolonger
sensitiveto
translation,
or rotation.It
is
also afeature
ofthis
algorithmto
scalethe
image
to
a standard grid size
(preferably
a power oftwo),
resulting in
arepresentation
that
is insensitive
to
size.This
feature is
being
noted,
although
it
was notactually implemented in
this
application.In order
to
restore an original objectfrom its
normalizedquadtree,
it is necessary for
extrainformation
to
be
carriedalong
as part of
the
data
structure.Specifically,
alinked list
of eachquadtree
comprising
the
image is
suggested. For eachquadtree,
information
is
storedpertaining
to the
coordinates ofthe
objectcentroid, the
angleof rotation of
the
object(principal angle), and,
if
normalizationby
sizeis
included,
fields representing
the
new standardsize,
andthe
amountThis
approach will notnecessarily
yield a minimal quadtree,but
2.3.2.
Normalization
withRespect to
TranslationOnly
This
approach[LI82,
etal.]
resultsin
a "minimal-cost" quadtreefor
animage,
that
is
unique overthe
class of alltranslations
ofthe
image.
Minimal-cost
refersto
a quadtree withthe
fewest
possibleleaves (non-terminal
nodes)
necessary
to
storethe
image.
Since the total
number of nodes
(terminal
andnon-terminal)
in
atree
is
proportionalto
the
number ofleaves in
the
tree,
the
algorithmin
effect minimizesthe
total
number of quadtree nodes.The
benefits
of such a representation areobvious;
there
willbe fewer
nodesto store,
andfewer
nodesinvolved
in
subsequent
tree traversal
operations.This
technique
is
also of usefor
applications
involving
shape-matching.A
simple,
intuitive
approachto this
problem wouldbe
to translate
the
image in
all possible ways withinthe array,
countthe
number ofleaves
requiredfor
the
quadtree at eachtranslation,
andultimately
choose
the tree
representation withthe
fewest
leaves.
Thisis
expensive(0(s**4),
where sis
the
length
ofthe
grid) and unnecessary, as willbe
explained
below.
The
algorithm assumes astarting image
embeddedin the
northwestquadrant of a
2**n
by
2**n
array.A theorem
in
[LI82,
etal.],
statesthat
in
this case, the
optimal grid size willbe
either2**(n-l),
or2**n.
An
"enclosing
rectangle"for
the
image is
defined
asthe
smallestrectangle
that
enclosesthe
image
and whose sides are parallelto the
coordinate axes. The
image's enclosing
rectangle willinitially
abutthe
northwest corner of
the
grid. A variable LEAFCOJNTERis initialized
-to
S**2,
whereS
is
the
original gridlength.
The
algorithm proceedsby
recursively
reducing
the
image array
by
powers of
two
whilecalculating
the
number ofleaves
neededfor the image
at
different
positionsin
the
array.It
is
possibleto
narrowthe
numberof
translations
processedto
within2**(n-l)
-1
pixels
in
the
easterndirection,
and2**(n-l)
-1
pixels
to the
south. A representation withthe
fewest
possibletree
nodes will alwaysbe found
withinthis
subset ofthe
total
grid area.(Proof
ofthis
canbe found in
[LI82,
et al.].) Forany
image,
there
may be
morethan
onetranslation
resulting in
a quadtreerepresentation with
the
smallest number of nodes.It
is
therefore
necessary
to
methodically
choose one ofthe
representations asthe
uniqueone. If an ambiguous situation
occurs,
the
algorithmwilltentatively
choose
the translation
whose northernmost BLACK pixelis
a minimum Y value.If more
than
one choicefor
a minimaltree
is
still possible,the
translation
withthe
smallestX
valueis
chosen.The
algorithm "translates"the
image four
times:
by
0
pixels,
by
1
pixelto the east,
by
1
pixelto the south,
andby
1
pixelto the
southeast. After each
translation,
the
array is
compactedto 1/4
ofits
former
sizeby
replacing
every
2x2
pixel region with atemporary
"supemode"
representing
the
contents ofthe
four
nodes.A
BLACK or WHITE"supemode"
denotes four
pixelsbeing
all BLACK or allWHITE;
aGRAY
"supemode"
specifies a non-homogeneous region. In
the
case of allfour
pixels
being
all BLACK or allWHITE,
LEAFCCUNTERis
reducedby
3,
meaning
that
oneleaf
is
sufficientto
representthis region,
ratherthan
four.
The
processis
repeatedrecursively
onthe new,
compacted arrays until allIt
shouldbe
notedthat the
algorithmdoes
notactually
performthe four
image translations.
A
"dummy"row and column
indexed
by
zero andinitialized
to WHITE
is
addedto
the
array before
beginning,
in
orderto
simulate
translations
by
one pixelby
changing
pixel coordinates only.In
this algorithm,
it is
possibleto
detect
the
situationwhere
the
smaller ofthe two
grid sizes(2**[n-l])
can accommodatethe
image (i.e.
whenthe complete,
compactedimage lies
completely
withinthe
northwest quadrant of
the
original grid size).Space
requirements are onthe
order of2
x(2**n)
pixels, and^
+ X
O 6rc> a White
Block
Root
Figure
2.H.
A
normalizedimage
andits
quadtree representation[CHTE
andAGGA-84]
Figure
2.1.
Example
oflattice
points,
unit cell of a pattern [image:37.551.131.410.33.399.2] [image:37.551.190.332.469.571.2]2.4.
Symmetry
Overview
[SCHA78]
The
secondhalf
ofthis
paperintroduces
what are referredto
asthe t^JCi-cUmensional
planesymmetry
groups,
and relatesthem to
ahierarchical
image
representation.Plane
symmetry
groups are well-knownin
the
fields
of mathematics and crystallography.Perhaps
one ofthe
mostfascinating
non-scientific applications ofthese
groups canbe found
in
the
drawings
ofDutch
artistM.
C. Escher.
(Seven
Ecsher
drawings
are
found
atthe
back
ofthis
paper.)
Plane
symmetry
groups are alsoknown
as"wallpaper
groups",
as explained
by
Schattschneider
in [SCHA78]: "Patterns
which areinvariant
under
linear
ccmbinations oftwo
linearly
independent
translations
repeatat regular
intervals in
two
directions,
andhence
their
groups are oftentermed
"wallpaper
groups".Seventeen
distinct
planesymmetry
groups aredefined.
2.4.1.
PlaneSymmetry
Groups
The
following
sixdefinitions helpful
to the understanding
oftwcMJimensional plane
symmetry
groups(classes)
aretaken
from [SCHA78]:
1.
A
"PERIODIC"OR
"REPEATING" PATTERNis
adesign
having
the
following
property:There
exista)
afinite
region andb)
two
linearly
independent translations
such
that the
set of allimages
ofthe
region when acted onby
the
group
generatedby
these
translations producesthe
originaldesign.
-2.
The
TRANSLAITCN
GROUP
of a periodic pattern consists ofthe
set of alltranslations
that map the
pattern ontoitself.
3.
A UNIT
ofthe
patternis
a smallest region ofthe
planehaving
the
property
that the
set ofits
images
underthis
translation
group
coversthe
plane.All
unitshave the
samearea,
but
their outlines canhave infinite
variation.4.
Every
periodic patternhas
naturally
associatedto
it
aLATTICE
ofpoints;
choosing any
pointin
the pattern,
this
lattice is the
set of allimages
ofthat
point when acted onby
the
translation group
ofthe
pattern.5.
A UNIT CELL
is
a unit whichis
a parallelogramwhose vertices arelattice
points.The
vectors whichform
the
sides of a unit cell generatethe
translation group
of a pattern.(See
Figure
2.1.)
In additionto
translations,
a periodic patternmay
alsobe
mapped ontoitself
by
any
ofthe
other planeisometries:
rotations,
reflections,
or glide reflections.
6.
The
GENERATING
REGION
of a periodic patternis
the
smallest region ofthe
plane whoseimages
underthe
full
symmetry
group
ofthe
pattern cover
the
plane.Figure
2.M
showsthe
generating
regionsfor
each planesymmetry
group.In
orderto
summarizethe
seventeen groups of planesymmetry,
the
following
table
is
presented asdefined
by
those
in
the
field
of crystallography.There
arefour basic
planetransformations
involved
in
the
classification of suchtilings; they
aretranslation,
rotation,
reflection,
and glide reflection.Combinations
ofthese
yieldthe
seventeen
distinct symmetry
classes.In
"full international
notation",
each
symmetry
classis described
as a concatenation ofup
to
four
symbols.Interpretation
offull international
symbols(left
to
right):[SHUB
andKDPT-74]:
1. letter p
or cdenotes
primitive or centered cell2. integer
ndenotes highest
order of rotationm
(mirror)
- reflection axisg
-no
reflection,
but
a glide-reflection axis1
-no
symmetry
axis4.
symboldenotes
asymmetry
axis at angle &to x-axis,
with &dependent
on n:
& =
180
for
n=l or2
45
for
n=460
for
n=3 or6
symbols m,g,l are
interpreted
asin 3.
NO
symbolsin
the third
andfourth
positionindicate
that the
group
contains no reflections or glide-reflections.
Class
Int'l
Int'lClass
Int'l Int'l(short)
(full)
(short)
(full)
1
Pi(pi)
2
p2(p211)
3
pm(plml)
4
pg
(plgl)
5
pmm(p2mm)
6
prog
(p2mg)
7
pgg
(p2gg)
8
cm(clml)
9
cmm(c2mm)
10
p4(p4)
11
p4m(p4mm)
12
p4g
(p4gm)
13
p3(p3)
14
p31m(p31m)
15
p3ml(p3ml)
16
p6(p6)
17
p6m(p6mm)
All
symbols,
withthe
exception of p31m andp3ml,
canbe
referredto
in
the
shortenedform,
with noloss
ofidentification
[SHUB
andKOPT-74].
The
abovetable
is
expressedvisually
in
Figure
2.L.
Figure
2.N
shows
the
effect ofapplying the
seventeensymmetry
groups on a singles o .r
c
.2 u H e s
|
3
r
C .5 _. w M a -a o o .
_ u 2
o o c c g
'2
I
3
_o
e
e
w
!8
2 2 2 2
0 mW S. m. M fi 4 e
2
o<
D
O
-
CO-a
_e _
SI
m
t-.a
5
E55
*. .
Figure
2.L.
Reprintedfrom
[SCHA78]
[image:41.551.66.477.25.656.2]-Figure
2.M.
Generating
regionsfor
the
17
planesymmetry
groups[TANIS]
pi
IS
p211
II
1
pi ml
^
S
[image:42.551.66.480.107.587.2]Figure
2.M.