1.04k likes | 1.17k Views
DIGITAL IMAGE PROCESSING. Instructors: Dr J. Shanbehzadeh Shanbehzadeh@gmail.com M.Kachooeian Kachooeian.mina@gmail.com. DIGITAL IMAGE PROCESSING. Instructors: Dr J. Shanbehzadeh Shanbehzadeh@gmail.com M.Kachooeian Kachooeian.mina@gmail.com.
E N D
DIGITAL IMAGE PROCESSING Instructors: Dr J. Shanbehzadeh Shanbehzadeh@gmail.com M.Kachooeian Kachooeian.mina@gmail.com
DIGITAL IMAGE PROCESSING Instructors: Dr J. Shanbehzadeh Shanbehzadeh@gmail.com M.Kachooeian Kachooeian.mina@gmail.com Chapter 11 - Representation and Description
Road map of chapter 11 3.3 3.3 3.5 3.4 3.1 3.1 3.2 3.2 3.4 3.5 • Regional Descriptors • 11.1- Representation • 11.2- Boundary Descriptors • 11.3- Regional Descriptors • 11.4- Use of Principal Components for Description • 11.5 - Relational Descriptors • Representation • Use of Principal Components for Description • Boundary Descriptors • Relational Descriptors
Chain Codes • Signatures • Skeletons Representation • Chain Codes • Polygonal Approximations • Boundary Segments • 11.1- Representation • 11.2- Boundary Descriptors • 11,3- Regional Descriptors • 11.4- Use of Principal Components for Description • 11.5 - Relational Descriptors
Chain Codes • Chain codes are used to represent a boundary by a connected sequence of straight-line segments of specified length and direction. • a chain code can be generated by following a boundary (in a clockwise direction) and assigning a direction to the segments connecting every pair of pixels. • This method generally is unacceptable for two principal reasons: • The resulting chain tends to be quite long • any small disturbances along the boundary due to noise or imperfect segmentation cause changes in the code that may not be related to the principal shape features of the boundary. • 11.1- Representation • 11.2- Boundary Descriptors • 11,3- Regional Descriptors • 11.4- Use of Principal Components for Description • 11.5 - Relational Descriptors
Chain Codes • 11.1- Representation • 11.2- Boundary Descriptors • 11,3- Regional Descriptors • 11.4- Use of Principal Components for Description • 11.5 - Relational Descriptors
Chain Codes • 11.1- Representation • 11.2- Boundary Descriptors • 11,3- Regional Descriptors • 11.4- Use of Principal Components for Description • 11.5 - Relational Descriptors • The chain code of a boundary depends on the starting point.Itcan be normalized with respect to the starting point. • We simply treat the chain code as a circular sequence of direction numbers and redefine the starting point so that the resulting sequence of numbers forms an integer of minimum magnitude. We can normalize also for rotation (in angles that are integer multiples of the directions in Fig. 11.3) by using the firs difference of the chain code instead of the code itself.
Chain Codes Normalization For Rotation This difference is obtained by counting the number of direction changes that separate two adjacent elements of the code. Example Chain code is 10103322 Normalized with first difference 3133030 If we treat the code as a circular sequence to normalize with respect to the starting point,the result is 33133030. • 11.1- Representation • 11.2- Boundary Descriptors • 11,3- Regional Descriptors • 11.4- Use of Principal Components for Description • 11.5 - Relational Descriptors
Chain Codes • 11.1- Representation • 11.2- Boundary Descriptors • 11,3- Regional Descriptors • 11.4- Use of Principal Components for Description • 11.5 - Relational Descriptors
Chain Codes • 11.1- Representation • 11.2- Boundary Descriptors • 11,3- Regional Descriptors • 11.4- Use of Principal Components for Description • 11.5 - Relational Descriptors • The 8-directional Freeman chain code : 0 0 0 0 6 0 6 6 6 6 6 6 6 6 4 4 4 4 4 4 2 4 2 2 2 2 2 0 2 2 0 2 • The integer of minimum magnitude of the code: 0 0 0 0 6 0 6 6 6 6 6 6 6 6 4 4 4 4 4 4 2 4 2 2 2 2 2 0 2 2 0 2 • The first difference of either code is 0 0 0 6 2 6 0 0 0 0 0 0 0 6 0 0 0 0 0 6 2 6 0 0 0 0 6 2 0 6 2 6 • Using any of these codes to represent the boundary results in a significant reduction in the amount of data needed to store the boundary. In addition, keep in mind that the subsampled boundary can be recovered from any of the preceding codes.
Chain Codes • Signatures • Skeletons Representation • Polygonal Approximations • Boundary Segments • Polygonal Approximations • 11.1- Representation • 11.2- Boundary Descriptors • 11,3- Regional Descriptors • 11.4- Use of Principal Components for Description • 11.5 - Relational Descriptors
Polygonal Approximations • A digital boundary can be approximated with arbitrary accuracy by a polygon. • Polygonal approximations: to represent a boundary by straight line segments, and a closed path becomes a polygon. • to be exact,we should have: • Number of segments of polygon=number of points in boundary • 11.1- Representation • 11.2- Boundary Descriptors • 11,3- Regional Descriptors • 11.4- Use of Principal Components for Description • 11.5 - Relational Descriptors
Polygonal Approximations • 11.1- Representation • 11.2- Boundary Descriptors • 11,3- Regional Descriptors • 11.4- Use of Principal Components for Description • 11.5 - Relational Descriptors
Polygonal Approximations • The size of the cells determines the accuracy of the polygonal approximation. • if the size of each (square) cell corresponds to a pixel in the boundary, error in each cell between the boundary and the MPP approximation at most would be , where d is the minimum possible distance between pixels. • The objective is to use the largest possible cell size acceptable in a given application • producing MPPs with the fewest number of vertices • 11.1- Representation • 11.2- Boundary Descriptors • 11,3- Regional Descriptors • 11.4- Use of Principal Components for Description • 11.5 - Relational Descriptors
Polygonal Approximations Concave vertex Convex vertex • 11.1- Representation • 11.2- Boundary Descriptors • 11,3- Regional Descriptors • 11.4- Use of Principal Components for Description • 11.5 - Relational Descriptors
Polygonal Approximations • 11.1- Representation • 11.2- Boundary Descriptors • 11,3- Regional Descriptors • 11.4- Use of Principal Components for Description • 11.5 - Relational Descriptors 1. The MPP bounded by a simply connected cellular complex is not self intersecting. 2. Every convex vertex of the MPP is a W vertex, but not every W vertex of a boundary is a vertex of the MPP 3. Every mirrored concave vertex of the MPP is a B vertex, but not every B vertex of a boundary is a vertex of the MPP 4. All B vertices are on or outside the MPR and all W vertices are on or in side the MPP 5. The uppermost, leftmost vertex in a sequence of vertices contained in a cellular complex is always a W vertex of the MPP
Polygonal Approximations • orientation of triplets of points: • the triplet of points, (a, b, c) • a = (x1, y1), b = (x2,y2), and c = (x3,y3) • 11.1- Representation • 11.2- Boundary Descriptors • 11,3- Regional Descriptors • 11.4- Use of Principal Components for Description • 11.5 - Relational Descriptors
Polygonal Approximations • Algorithm: • form a list whose rows are the coordinates of each vertex and an additional element denoting whether the vertex is W or B. • V0the first vertex be the uppermost leftmost • assume that vertices are arranged in the counterclockwise direction. • WCcrawls along convex (W) vertices • Bccrawls along mirrored concave (B) vertices • VLlast MPP vertex found • Vk current vertex being examined. • 11.1- Representation • 11.2- Boundary Descriptors • 11,3- Regional Descriptors • 11.4- Use of Principal Components for Description • 11.5 - Relational Descriptors
Polygonal Approximations • SetWC= BC = V0 • Vklies to the positive side of the line through pair (VL, WC); that is, sgn(VL, WC, Vk) > 0. • the next MPP vertex is WC, and we let VL = WC; then we reinitialize the algorithm by setting WC = BC = VL, and continue with the next vertex left • (b)Vklies on the negative side of the line though pair (VL, WC) or is collinear with it; that is sgn(VL, WC, Vk) 0. At the same time, VK lies to the positive • side of the line through (VL, BC) or is collinear with it; that is, • sgn(VL,BC, Vk) = 0. • VL becomes a candidate MPP vertex. In this case, we set WC = Vk if Vk is convex (i.e., it is a W vertex); otherwise we set BC = Vk. • We then continue with the next vertex in the list. • . • 11.1- Representation • 11.2- Boundary Descriptors • 11,3- Regional Descriptors • 11.4- Use of Principal Components for Description • 11.5 - Relational Descriptors
Polygonal Approximations (c)Vk lies on the negative side of the line though pair (VL, Bc): that is, sgn(VL, BC, VK) < 0. the next MPP vertex is BCand we let VL = BC; then we reinitialize the algorithm by setting WC = BC = VL and continue with the next vertex after VL • 11.1- Representation • 11.2- Boundary Descriptors • 11,3- Regional Descriptors • 11.4- Use of Principal Components for Description • 11.5 - Relational Descriptors • Algorithm terminates when it reaches the first vertex again, and thus has processed all the vertices in the polygon. The VL vertices found by the algorithm are the vertices of the MPP
Polygonal Approximations Example • 11.1- Representation • 11.2- Boundary Descriptors • 11,3- Regional Descriptors • 11.4- Use of Principal Components for Description • 11.5 - Relational Descriptors • letting WC = BC = V0 = VL = (1.4). • The next vertex is V1 = (2, 3). • sgn(VL, WC, V1) = 0 and sgn(VL, BC, V1) = 0 • condition (b) holds. • We let BC= V1= (2, 3) and WCis at (1, 4), • VLis still at (1,4) because no new MPP-vertex was found.
Polygonal Approximations • Next, we look at V2 = (3, 3). • sgn(VL, WC, V2) = 0, and sgn(VL, BC, V2) = 1 • condition (b) of the algorithm holds again. • Because V2 is a W (convex) vertex , we let WC = V2 = (3, 3). At this stage, the crawlers are at WC= (3,3) and BC= (2,3); VL remains un- changed. • 11.1- Representation • 11.2- Boundary Descriptors • 11,3- Regional Descriptors • 11.4- Use of Principal Components for Description • 11.5 - Relational Descriptors
Polygonal Approximations • If we we examine V5 = (7,1) ,we’ll have: • sgn(VL, WC, V5) = 9 • so condition (a) holds • set VL = WC = (4, 1). Because a new MPP vertex was found, we reinitialize the algorithm by setting WC = BC = VL and start again with the next vertex being the vertex after the newly found VL. The next vertex is V5, so we visit it again. • 11.1- Representation • 11.2- Boundary Descriptors • 11,3- Regional Descriptors • 11.4- Use of Principal Components for Description • 11.5 - Relational Descriptors
Polygonal Approximations • 11.1- Representation • 11.2- Boundary Descriptors • 11,3- Regional Descriptors • 11.4- Use of Principal Components for Description • 11.5 - Relational Descriptors Continuing as above with this and the remaining vertices yields the MPP vertices in Fig below.
Polygonal Approximations • 11.1- Representation • 11.2- Boundary Descriptors • 11,3- Regional Descriptors • 11.4- Use of Principal Components for Description • 11.5 - Relational Descriptors
Chain Codes • Signatures • Skeletons Representation • Polygonal Approximations • Boundary Segments • Signatures • 11.1- Representation • 11.2- Boundary Descriptors • 11,3- Regional Descriptors • 11.4- Use of Principal Components for Description • 11.5 - Relational Descriptors
Signatures • represents a shape by a one dimensional function derived from shape boundary point. • 1-D function is easier to describe than the original 2-D boundary. • 11.1- Representation • 11.2- Boundary Descriptors • 11,3- Regional Descriptors • 11.4- Use of Principal Components for Description • 11.5 - Relational Descriptors
Signatures • 11.1- Representation • 11.2- Boundary Descriptors • 11,3- Regional Descriptors • 11.4- Use of Principal Components for Description • 11.5 - Relational Descriptors
Signatures • 11.1- Representation • 11.2- Boundary Descriptors • 11,3- Regional Descriptors • 11.4- Use of Principal Components for Description • 11.5 - Relational Descriptors • Problem: Signatures generated by this approach are invariant to translation, but they do depend on rotation. • Solution for rotation: We can normalize with respect to rotation . • find a way to select the same starting point to generate the • signature, regardless of the shape’s orientation. • One way to do so is to select the starting point as the point farthest from the centroid, assuming that this point is unique for each shape of interest.
Signatures • 11.1- Representation • 11.2- Boundary Descriptors • 11,3- Regional Descriptors • 11.4- Use of Principal Components for Description • 11.5 - Relational Descriptors • Solution for scaling: We can normalize with respect to scaling. • Scale all functions so that they always span the same range of values, e.g., [0, 1]. • Advantage: simplicity • disadvantage :depends on only two values the minimum and maximum.
Chain Codes • Signatures • Skeletons Representation • Polygonal Approximations • Boundary Segments • Boundary Segments • 11.1- Representation • 11.2- Boundary Descriptors • 11,3- Regional Descriptors • 11.4- Use of Principal Components for Description • 11.5 - Relational Descriptors
Boundary Segments • 11.1- Representation • 11.2- Boundary Descriptors • 11,3- Regional Descriptors • 11.4- Use of Principal Components for Description • 11.5 - Relational Descriptors • Decomposition reduces the boundary’s complexity and thus simplifies the description process. • In this case, use of the convex hull of the region enclosed by the boundary is a powerful tool for robust decomposition of the boundary.
Boundary Segments • convex hull H of an arbitrary set S is the smallest convex set containing S. • The set difference H - S is called the convex deficiency D of the set S. The region boundary can be partitioned by following the contour of S and marking the points at which a transition is made into or out of a component of the convex deficiency. • 11.1- Representation • 11.2- Boundary Descriptors • 11,3- Regional Descriptors • 11.4- Use of Principal Components for Description • 11.5 - Relational Descriptors Convex deficiency
Boundary Segments • 11.1- Representation • 11.2- Boundary Descriptors • 11,3- Regional Descriptors • 11.4- Use of Principal Components for Description • 11.5 - Relational Descriptors S = dbabcbabdbabcbab
Boundary Segments • Another use of convex deficiency is to recognize human actions. • 11.1- Representation • 11.2- Boundary Descriptors • 11,3- Regional Descriptors • 11.4- Use of Principal Components for Description • 11.5 - Relational Descriptors
Boundary Segments • Problem: digital boundaries tend to be irregular . • These effects usually result in convex deficiencies that have small, meaningless components scattered randomly through-out the boundary. • Solution: smooth a boundary prior to partitioning. traverse the boundary and replace the coordinates of each pixel by the average coordinates of k of its neighbors along the boundary. • works for small irregularities, but it is time-consuming and difficult to control • Large values of k excessive smoothing • small values of k insufficient in some segments of the boundary • 11.1- Representation • 11.2- Boundary Descriptors • 11,3- Regional Descriptors • 11.4- Use of Principal Components for Description • 11.5 - Relational Descriptors
Boundary Segments • Better solution: use a polygonal approximation prior to finding the convex deficiency of a region. Most digital boundaries of interest are simple .Graham and Yao [1983] give an algorithm for finding the convex hull of such polygons. • 11.1- Representation • 11.2- Boundary Descriptors • 11,3- Regional Descriptors • 11.4- Use of Principal Components for Description • 11.5 - Relational Descriptors
Chain Codes • Signatures • Skeletons Representation • Polygonal Approximations • Boundary Segments • 11.1- Representation • 11.2- Boundary Descriptors • 11,3- Regional Descriptors • 11.4- Use of Principal Components for Description • 11.5 - Relational Descriptors • Skeletons
Skeletons • Represent structural shape of a plane regionreduce it to a graph. • Use skeletonizing algorithm via a thinning • Problem of some skeletonizing algorithms: • the procedure made no provisions for keeping the skeleton connected. • The skeleton of a region may be defined via the medial axis transformation (MAT) proposed by Blum [1967]. • 11.1- Representation • 11.2- Boundary Descriptors • 11,3- Regional Descriptors • 11.4- Use of Principal Components for Description • 11.5 - Relational Descriptors
Skeletons medial axis is the locus of centers of maximal disks that fit within the shape. • 11.1- Representation • 11.2- Boundary Descriptors • 11,3- Regional Descriptors • 11.4- Use of Principal Components for Description • 11.5 - Relational Descriptors
Skeletons • Difference between MAT and skeleton • 11.1- Representation • 11.2- Boundary Descriptors • 11,3- Regional Descriptors • 11.4- Use of Principal Components for Description • 11.5 - Relational Descriptors
Skeletons • 11.1- Representation • 11.2- Boundary Descriptors • 11,3- Regional Descriptors • 11.4- Use of Principal Components for Description • 11.5 - Relational Descriptors • The MAT of a region R with border B: • For each point p in R, find its closest neighbor in B. • If p has more than one such neighbor, it is said to belong to the skeletonof R. Problem: direct implementation of this definition is expensive computationally. Implementation involves calculating the distance from every interior point to every point on the boundary of a region.
Skeletons Solution: thinning algorithms that iteratively delete boundary points of a region subject to the constraints that deletion of these points (1) does not remove end points (2) does not break connectivity (3) does not cause excessive erosion of the region. • 11.1- Representation • 11.2- Boundary Descriptors • 11,3- Regional Descriptors • 11.4- Use of Principal Components for Description • 11.5 - Relational Descriptors
Skeletons Algorithm for thinning binary regions Step 1 flags a contour point p, for deletion if the following conditions are satisfied: • 11.1- Representation • 11.2- Boundary Descriptors • 11,3- Regional Descriptors • 11.4- Use of Principal Components for Description • 11.5 - Relational Descriptors • N(p1) is the number of nonzero neighbors of p1 • T(p1) is the number of 0-1 transitions in the ordered sequence p2, p3, ,..., p8. p9, p2.
Skeletons Example 0 0 1 1 p1 0 1 0 1 N(p1) = 4 and T(p1) = 3 • 11.1- Representation • 11.2- Boundary Descriptors • 11,3- Regional Descriptors • 11.4- Use of Principal Components for Description • 11.5 - Relational Descriptors
Skeletons Step 2 conditions (a) and (b) remain the same, but conditions (c) and (d) are changed to • 11.1- Representation • 11.2- Boundary Descriptors • 11,3- Regional Descriptors • 11.4- Use of Principal Components for Description • 11.5 - Relational Descriptors Algorithm: 1.Apply Step 1 to every border pixel in the binary region . 2. if all conditions (a)-(d) are satisfiedthe point is flagged for deletion. 3.Delete flagged points (changed to 0). 4.Apply step 2 to the resulting data
Skeletons • 11.1- Representation • 11.2- Boundary Descriptors • 11,3- Regional Descriptors • 11.4- Use of Principal Components for Description • 11.5 - Relational Descriptors
Some Simple Descriptors • Fourier Descriptors Boundary Descriptors • Some Simple Descriptors • Shape Numbers • Statistical Moments • 11.1- Representation • 11.2- Boundary Descriptors • 11,3- Regional Descriptors • 11.4- Use of Principal Components for Description • 11.5 - Relational Descriptors