Digital Image Processing Lecture 5 Morphological Image Processing Remember GRAY LEVEL THRESHOLDING Objects Set threshold here BINARY IMAGE Problem here How do we fill “missing pixels”? Mathematic Morphology mathematical framework used for: • pre-processing – noise filtering, shape simplification, ... • enhancing object structure – skeletonization, convex hull... • Segmentation – watershed,… • quantitative description – area, perimeter, ... 4 Z2 and Z3 • set in mathematic morphology represent objects in an image – binary image (0 = white, 1 = black) : the element of the set is the coordinates (x,y) of pixel belong to the object Z2 • gray-scaled image : the element of the set is the coordinates (x,y) of pixel belong to the object and the gray levels Z3 5 Basic Set Theory 6 Reflection and Translation Bˆ {w | w b, for b B} ( A) z {c | c a z, for a A} 7 Example 8 Structuring element (SE) small set to probe the image under study for each SE, define origo shape and size must be adapted to geometric properties for the objects 9 Examples: Structuring Elements origin 10 Basic idea • in parallel for each pixel in binary image: – check if SE is ”satisfied” – output pixel is set to 0 or 1 depending on used operation 11 Example Origin of B visits every element of A At each location of the origin of B, if B is completely contained in A, then the location is a member of the new set, otherwise it is not a member of the new set. 12 Basic morphological operations • Erosion • Dilation • combine to – Opening – Closening keep general shape but smooth with respect to object background 13 Erosion • Does the structuring element fit the set? erosion of a set A by structuring element B: all z in A such that B is in A when origin of B=z shrink the object 14 Erosion 15 Erosion 16 Erosion 17 Erosion A B {z|(B)z A} 18 Dilation • Does the structuring element hit the set? • the dilation of A by B can be understood as the locus of the points covered by B when the center of B moves inside A. A B {z|( Bˆ )z A Φ} • grow the object 19 Dilation 20 Dilation 21 Dilation 22 Dilation B = structuring element A B {z|( Bˆ )z A Φ} 23 Dilation : Bridging gaps 24 25 26 27 28 useful • erosion – removal of structures of certain shape and size, given by SE • Dilation – filling of holes of certain shape and size, given by SE 29 Combining erosion and dilation • WANTED: – remove structures / fill holes – without affecting remaining parts • SOLUTION: • combine erosion and dilation • (using same SE) 30 Erosion : eliminating irrelevant detail structuring element B = 13x13 pixels of gray level 1 31 Opening erosion followed by dilation, denoted ∘ A B ( A B) B • eliminates protrusions • breaks necks • smoothes contour 32 Opening 33 Opening 34 Opening A B ( A B) B A B {( B) z | ( B) z A} 35 Opening example Opening with a 11 pixel diameter disc: 3x9 and 9x3 Structuring Element Closing dilation followed by erosion, denoted • A B ( A B) B • • • • smooth contour fuse narrow breaks and long thin gulfs eliminate small holes fill gaps in the contour 37 Closing 38 Closing 39 Closing A B ( A B) B 40 Another closing example Closing operation with a 22 pixel disc, closes small holes in the foreground. And another… Threshold, closing with disc of size 20. Note that opening is the dual of closing i.e. opening the foreground pixels with a particular structuring element is equivalent to closing the background pixels with the same element. Properties Opening (i) AB is a subset (subimage) of A (ii) If C is a subset of D, then C B is a subset of D B (iii) (A B) B = A B Closing (i) A is a subset (subimage) of AB (ii) If C is a subset of D, then C B is a subset of D B (iii) (A B) B = A B Note: repeated openings/closings has no effect! 43 46 Useful: open & close 47 APPLICATIONS 48 Application: filtering 49 Hit-and-miss transform * Used to look for particular patterns of foreground and background pixels Very simple object recognition Example for a Hit-and-miss Structuring Element: Contains 0s, 1s and don’t care’s. Similar to Pattern Matching: If foreground and background pixels in the structuring element exactly match foreground and background pixels in the image, then the pixel underneath the origin of the structuring element is set to the foreground colour. Hit-and-miss example: corner detection Structuring Elements representing four corners. Apply each Structuring Element. Use OR operation to combine the four results. Boundary Extraction ( A) A ( A B) 52 Example 53 Region Filling X k ( X k 1 B) A c k 1,2,3,... 54 Region Filling Algorithm 55 Example 56 Thinning A B A ( A B) A ( A B) c 57 Thickening •The thickening operation is calculated by translating the origin of the structuring element to each possible pixel position in the image, and at each such position comparing it with the underlying image pixels. If the foreground and background pixels in the structuring element exactly match foreground and background pixels in the image, then the image pixel underneath the origin of the structuring element is set to foreground (one). Otherwise it is left unchanged. Note that the structuring element must always have a zero or a blank at its origin if it is to have any effect. A B A ( A B) Alternatively, based on Thining 58