1 Kap.9 Quad – Trees Kap. 9.1 Region Quad - Trees Darstellung von gerasterten Flächen mit Eigenschaften pro Flächenpunkt, z.B. Farbe, Höhe,... Pixel-Wert = {0,1} für s/w Pixel = Picture Element Idee: Rekursive Flächenzerlegung in Teilflächen mit konstanten Pixelwerten Zíel: Komprimierte Darstellung u. leichte Manipulation NW NO 1 13 16 SW SO 15 14 5 9 12 11 6 3 4 2 7 8 10
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
1
Kap.9 Quad – TreesKap. 9.1 Region Quad - TreesDarstellung von gerasterten Flächen mit Eigenschaften pro Flächenpunkt, z.B. Farbe, Höhe,... Pixel-Wert = {0,1} für s/w Pixel = Picture Element
Idee: Rekursive Flächenzerlegung in Teilflächen mit konstanten Pixelwerten
Zíel: Komprimierte Darstellung u. leichte Manipulation
NW NO
113 16
SW SO
1514
5 9 12
1163
4
27
8
10
2
Ist Pixel [3,5] schwarz oder weiß? Farbbestimmung: i.a. Pixeleigenschaft
1. [3,5] liegt in NO = 2. [3,5] in in SW =
Pixel [3,5] = schwarz
NW
12 SW
SO 34
NO
NOSO
NW
5 6 78
SW
9 11 12 13 14 15 16NW SW NW
1718 21
Hinw.: Quad-Tree für Pixelbild eindeutig. Baumhöhe ~ ld von Auflösung, z.B. bei Bildschirm 1000 x 1000 10Überlegung: geeignet für Darstellung von Schrift auf Bildschirm?
Algorithmen:
22 23 24
4
4
3
Update: Pixel [7,7] 1
=> =>
Pixel [7,5] 1 =>
=> 10FortpflanzungRichtung Wurzel?
10
7,5
Wichtig: lokale Bildänderung ~lokale Trafos in Quad-Treelängs 1 Pfad
11
7,7
4
if QT = schw. Knoten then alle Pixel schwarz
else if QT = weißer Knoten then alle Pixel weiß
else {Wurzelknoten von QT ist grau}
paint ( QT. NW); paint (QT. SW);
paint (QT. SO); paint (QT. NO)
Bild zeigen: paint (QT)
5
Randbestimmung: Finde größerenwestlichen Nachbarn von x, z.B. x = 21 :
Pfad zu 21 von Wurzel aus: SOSWNW
21
Alg: Pfad zu 21
Keller
kellern, zurück zuletzter Ost-Abzweig.,nach Westen, dannimmer nach Osten
SWSONO
7 größer als 21 weil Pfadkürzer, aber gleich gefärbt,Zwischenkante, i.R. westlicheGrenze von 21 gehört nichtzum Rand
westlicher Nachbar von 18:SWNOSW
18
SWNWSO
5
5 > 18, unterschiedlich gefärbt
=> westl.Kante von 18 im Rand
7
6
Falls gesuchter Nachbar echt kleiner, keine Entscheidung, entscheide vom kleineren Nachbarn aus gesehen.
Bei gleichgroßen Nachbarn: Zwischenkante erscheint zweimal im Rand, nicht schädlich!
Alg. für Rand:
zum Rand zwischen weißem
Alg. für Rand und Gebiet mit Farbe f:
wie oben
Blätter Xbestimme alle 4 Nachbarn Yif Y X u. Farbe verschieden
then Kante von X zu Y gehört
u. schwarzem Gebiet.
Blätter X mit Farbe f... :
.
7
Weitere AlgorithmenBild Drehungen um 90
~ Kante +1 mod 4
i.e. Umnummerierung der Kanten
Dreh-Alg:1. Verschieben2. Drehen, i.e. rek.
Aufruf f. Unterbaum
nicht konstruierensondernKantendrehungmitrechnen
Hinw: geht, weil Blätter gegenDrehung invariant sind.
8
Raster-Display: zeilenweise
Auffinden von östlichen Nachbarn:1. Zurück zu westlicher Kante2. Einmal östlich gehen : NW NO
SW SO3. nur westliche Zweige verfolgen:
ob SW oder NW ausZeilenzahl berechnen
Auffinden von südlichen Nachbarn:0. Knoten am linken Rand merken1. Zurück zu nördlicher Kante2. einmal südlich gehen3. allen NW-Zweigen folgen: i.e. südl.
Nachbar am weitesten westlich
NW NO
NOSOSWNW
9
Zoom: auf einen Quadranten:paint (QT.NW), ... , paint (QT.NO)
Mengen Operationen: , dunkel dominiert bei ,entsprechende Knoten rekursivvergleichen:
s x = s x beliebigw x = xg s = sg w = g
g g = s : wenn nach alle Söhne sg sonst
Beispiel
=
=
10
Verallg. auf beliebige Farbmischungen?blau gelb = grün
Alg. für Union:Union (A,B) :
if black (A) or black (B) then black nodeelse if white (A) then Belse if white (B) then Aelse U Union (NW (A), NW (B)); V Union (SW (A), SW (B)); W Union (SO (A), SO (B));
X Union (NO (A), NO (B));
if U = V = W = X = black then black nodeelse
:.
u vAlg. für und Differenz analoge rekursive Struktur.