1 / 57

DIGITAL IMAGE PROCESSING

Chapter 11-Representation and Description. DIGITAL IMAGE PROCESSING. J. Shanbehzadeh and A. Farahmand Shanbehzadeh@gmail.com. Preview. Representing a region involves two choices:

mercer
Télécharger la présentation

DIGITAL IMAGE PROCESSING

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Chapter 11-Representation and Description DIGITAL IMAGE PROCESSING J. Shanbehzadeh and A. Farahmand Shanbehzadeh@gmail.com

  2. Preview • Representing a region involves two choices: • in terms of its external characteristics (its boundary), when the primary focus is on shape characteristics • in terms of its internal characteristics (the pixels comprising the region),when the primary focus is on regional properties (like color, texture,…) • The next task is to describe the region based on the chosen representation. • The features selected as descriptors should be as insensitive as possible to variations in size, translation, and rotation

  3. Table of Contents • 11.1.1 Boundary(Border) Following • 11.1.2 Chain Codes • 11.1.3 Polygonal Approximation Using Minimum Perimeter Polygons • 11.1.4 Other Polygonal Approximation Approaches • 11.1.5 Signatures • 11.1.6 Boundary Segments • 11.1.7 Skeletons 11.1 Representation

  4. Table of Contents • 11.1.1 Boundary(Border) Following • 11.1.2 Chain Codes • 11.1.3 Polygonal Approximation Using Minimum Perimeter Polygons • 11.1.4 Other Polygonal Approximation Approaches • 11.1.5 Signatures • 11.1.6 Boundary Segments • 11.1.7 Skeletons 11.1 Representation

  5. Boundary(Border) Following boundary-following algorithm Let the starting point, b0, be the uppermost, Leftmost point in the image that is labelled 1. Denote by c0the west neighbour of b0)a background point(. Examine the 8-neighbors of b0, starting at c0 and proceeding in a clockwise direction. Let b, denote the fist neighbour encountered whose value is 1, and let cl be the (background) point immediately preceding b, in the sequence. Store the locations of b0 and b1 for use in Step 5. 2. Let b = b1 and c = c1 [see Fig. 11.1(c)]. 3. Let the 8-neighbors of b, starting at c and proceeding in a clockwise direction, be denoted by n1, n2 ,... , n8. Find the first n klabelled 1.

  6. Boundary(Border) Following 4. Let b= n k and c = n k-1. 5. Repeat Steps 3 and 4 until b = b 0, and the next boundary point found is b1. b1 c1

  7. Boundary(Border) Following Example of incorrect stopping rule b1

  8. Table of Contents • 11.1.1 Boundary(Border) Following • 11.1.2 Chain Codes • 11.1.3 Polygonal Approximation Using Minimum Perimeter Polygons • 11.1.4 Other Polygonal Approximation Approaches • 11.1.5 Signatures • 11.1.6 Boundary Segments • 11.1.7 Skeletons 11.1 Representation

  9. 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.

  10. Chain Codes

  11. Chain Codes • 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.

  12. 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.

  13. Chain Codes

  14. Chain Codes • 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.

  15. Table of Contents • 11.1.1 Boundary(Border) Following • 11.1.2 Chain Codes • 11.1.3 Polygonal Approximation Using Minimum Perimeter Polygons • 11.1.4 Other Polygonal Approximation Approaches • 11.1.5 Signatures • 11.1.6 Boundary Segments • 11.1.7 Skeletons 11.1 Representation

  16. Polygonal Approximation Using Minimum-Perimeter Polygons • 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

  17. Polygonal Approximation Using Minimum-Perimeter Polygons

  18. Polygonal Approximation Using Minimum-Perimeter Polygons

  19. Polygonal Approximation Using Minimum-Perimeter Polygons Our objective in this section is to formulate a procedure for finding these MPP vertices…

  20. Polygonal Approximation Using Minimum-Perimeter Polygons Convex vertex Concave vertex

  21. Polygonal Approximation Using Minimum-Perimeter Polygons 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

  22. Polygonal Approximation Using Minimum-Perimeter Polygons • orientation of triplets of points: • the triplet of points, (a, b, c) • a = (x1, y1), b = (x2,y2), and c = (x3,y3)

  23. Polygonal Approximation Using Minimum-Perimeter Polygons • Algorithm: • form a list whose rows are the coordinates of each vertex and an additional element denoting whether the vertex is W or B. • V0the first vertex be the uppermost leftmost • assume that vertices are arranged in the counterclockwise direction. • WCcrawls along convex (W) vertices • Bccrawls along mirrored concave (B) vertices • VLlast MPP vertex found • Vk current vertex being examined.

  24. Polygonal Approximation Using Minimum-Perimeter Polygons • 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. • .

  25. Polygonal Approximation Using Minimum-Perimeter Polygons (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 • 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

  26. Polygonal Approximation Using Minimum-Perimeter Polygons Example • 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.

  27. Polygonal Approximation Using Minimum-Perimeter Polygons • 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.

  28. Polygonal Approximation Using Minimum-Perimeter Polygons • 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.

  29. Polygonal Approximation Using Minimum-Perimeter Polygons Continuing as above with this and the remaining vertices yields the MPP vertices in Fig below.

  30. Polygonal Approximation Using Minimum-Perimeter Polygons

  31. Table of Contents • 11.1.1 Boundary(Border) Following • 11.1.2 Chain Codes • 11.1.3 Polygonal Approximation Using Minimum Perimeter Polygons • 11.1.4 Other Polygonal Approximation Approaches • 11.1.5 Signatures • 11.1.6 Boundary Segments • 11.1.7 Skeletons 11.1 Representation

  32. Other Polygonal Approximation Approaches Merging Techniques • merge points along a boundary until the least square error line fit of the points merged so far exceeds a pre-set threshold. When this condition occurs, the parameters of the line are stored. the error is set to 0. and the procedure is repeated • At the end of the procedure the intersections of adjacent line segments form the vertices of the polygon

  33. Other Polygonal Approximation Approaches Splitting techniques • subdivide a segment successively into two parts until a specified criterion is satisfied. For instance, a requirement might be that the maximum perpendicular distance from a boundary segment to the line joining its two end points not exceed a preset threshold. If it does, the point having the greatest distance from the line becomes a vertex, thus subdividing the initial segment into two sub-segments.

  34. Other Polygonal Approximation Approaches Farthest point to ab line in terms of perpendicular distance Example Threshold: 0.25 times the length of line ab

  35. Table of Contents • 11.1.1 Boundary(Border) Following • 11.1.2 Chain Codes • 11.1.3 Polygonal Approximation Using Minimum Perimeter Polygons • 11.1.4 Other Polygonal Approximation Approaches • 11.1.5 Signatures • 11.1.6 Boundary Segments • 11.1.7 Skeletons 11.1 Representation

  36. 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.

  37. Signatures

  38. Signatures • 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.

  39. Signatures • 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.

  40. Table of Contents • 11.1.1 Boundary(Border) Following • 11.1.2 Chain Codes • 11.1.3 Polygonal Approximation Using Minimum Perimeter Polygons • 11.1.4 Other Polygonal Approximation Approaches • 11.1.5 Signatures • 11.1.6 Boundary Segments • 11.1.7 Skeletons 11.1 Representation

  41. Boundary Segments • 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.

  42. 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. Convex deficiency

  43. Boundary Segments S = dbabcbabdbabcbab

  44. Boundary Segments • Another use of convex deficiency is to recognize human actions.

  45. 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

  46. 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.

  47. Table of Contents • 11.1.1 Boundary(Border) Following • 11.1.2 Chain Codes • 11.1.3 Polygonal Approximation Using Minimum Perimeter Polygons • 11.1.4 Other Polygonal Approximation Approaches • 11.1.5 Signatures • 11.1.6 Boundary Segments • 11.1.7 Skeletons 11.1 Representation

  48. Skeletons • Represent structural shape of a plane regionreduce 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].

  49. Skeletons medial axis is the locus of centers of maximal disks that fit within the shape.

  50. Skeletons • Difference between MAT and skeleton

More Related