Professional Documents
Culture Documents
Quad Trees: Region Data vs. Point Data. Roads and Rivers in A Country/state
Quad Trees: Region Data vs. Point Data. Roads and Rivers in A Country/state
Network firewalls.
(source prefix, destination prefix, action) (01*, 110*, drop packet)
27 dest 24
8 15
source
Quad Trees
Binary images.
Image region is divided into cells called pixels. Each pixel is either black (0, background) or white (1).
Image Operations
Rotation.
Scaling
Expansion.
Each pixel is replaced by a 2k x 2k window of pixels of the same intensity.
Shrinking.
Each 2k x 2k window is replaced by a pixel whose intensity is some function of that of the window pixel intensities.
Shrinking Example
k = 1. >= 2 white pixels in 21 x 21 window => white pixel.
Image Representation
n x n matrix.
Q(n2) space. Q(n2) time for rotation, scaling, union, intersection, and so on.
Quad tree.
O(n2) space. O(n2) time for rotation, scaling, union, intersection, and so on. For some images, the space and time could be as little as O(1) (e.g., all white or all black images).
Quad Tree
Degree 4 tree (each node has up to 4 children). Each node represents a portion of the image. Root node represents entire 2k x 2k image. The children of a node that represents a 2q x 2q region represent its 4 2q-1 x 2q-1 subregions.
Quad Tree
Each node has one of the colors white, black, gray.
White (black) => all pixels in nodes region are white (black). Gray => at least one black and at least one white.
White and black nodes have no children. Gray nodes have 4 children each.
SW
SE
SW
SE
SW
SE
SW
SE
Oct Tree
Extension of quad tree to the representation of 3-d images. Degree 8 tree (each node has up to 8 children). The children of a node that represents a 2q x 2q x 2q region represent its 8 2q-1 x 2q-1 x 2q-1 subregions.
SW
SE
SW SE If the 4 quad tree roots are all black (white), return a single node quad tree with a black (white) root. Otherwise, return a quad tree with a gray root whose subtrees are the quadrant quad trees.
Complexity
Let t(k) be the time to construct the quad tree of a 2k x 2k binary image (matrix). t(0) = c, where c is some constant. t(k) = 4t(k1) + d, where d is some constant and k > 1. t(k) = Q(4k) = Q(#pixels in matrix).
SW
NW
SW
NW
Recursive Algorithm
If root is a leaf, return. Rotate the children of the root.
(NW, NE, SE, SW) (SW, NW, NE, SE)
Recursively perform the rotation in the subtrees of the root. Complexity is Q(size of quad tree).
Quad tree size = # nodes.
Other Rotations
Clockwise rotations by 180 and 270 degrees are similar. Counterclockwise rotations by 90, 180, and 270 degrees are similar. Rotation by 360 degrees is null.
Shrinking
k = 1. >= 2 white pixels in 21 x 21 window => white pixel.
NW NE
SW
SE
Shrinking
k = 1. >= 2 white pixels in 21 x 21 window => white pixel.
NW NE
SW
SE
Shrinking
k = 1. >= 2 white pixels in 21 x 21 window => white pixel.
NW NE
SW
SE
Shrinking
k = 1. >= 2 white pixels in 21 x 21 window => white pixel.
NW NE
SW
SE
Algorithm To Shrink (k = 1)
Root represents a 1 x 1 region => return. Root represents a 2 x 2 region.
Root is a leaf => return. Color the root white if it has >= 2 white children. Otherwise color the root black. Make root a leaf and return.
Union
Rules.
Do a pairwise union of corresponding pixels in the two images. Union is white iff at least one pixel of the pair is white.
Recursive Union(A,B)
A B
root(A) (root(B)) is white => return A (B). root(A) (root(B)) is black => return B (A). Both have a gray root.
Pairwise union the subtrees of A and B. If all four of the returned subtrees have a white root, return a single node tree with a white root. Otherwise return a tree with a gray root and the four returned subtrees as its subtrees.
Intersection
Rules.
Do a pairwise intersection of corresponding pixels in the two images. Intersection is white iff both pixels of the pair are white.
Recursive Intersection(A,B)
A B
root(A) (root(B)) is black => return A (B). root(A) (root(B)) is white => return B (A). Both have a gray root.
Pairwise intersect the subtrees of A and B. If all four of the returned subtrees have a black root, return a single node tree with a black root. Otherwise return a tree with a gray root and the four returned subtrees as its subtrees.