1 Regions and Binary Images Hao Jiang Computer Science Department Sept. 25, 2014
Figure Ground Separation 2
Brightness Thresholding 3
= - Thresholding Given a grayscale image or an intermediate matrix threshold to create a binary output. Example: background subtraction Looking for pixels that differ significantly from the “empty” background. fg_pix = find(diff > t); Slides from Kristen Grauman
Thresholding Given a grayscale image or an intermediate matrix threshold to create a binary output. Example: color-based detection Looking for pixels within a certain hue range. fg_pix = find(hue > t1 & hue < t2); Slides from Kristen Grauman
More Binary Images 6 Slide from Kristen Grauman
Issues How to demarcate multiple regions of interest? Count objects Compute further features per object What to do with “noisy” binary outputs? Holes Extra small fragments Slide from Kristen Grauman
Find Connected Regions 8
9 Our target in this image is the largest blob.
Connected Components Identify distinct regions of “connected pixels” Shapiro and Stockman
Pixel Neighbors 11 4 neighboring pixels of the blue pixel
Pixel Neighbors 12 8 neighboring pixels of the blue pixel
Recursive Method 13 label = 2 for i = 1 to rows for j = 1 to cols if I(i, j) == 1 labelConnectedRegion(i, j, label) label ++; end
Recursive Method 14 function labelConnectedRegion(int i, int j, int label) if (i,j) is labeled or background or out of boundary return I(i,j)=label for (m,n) belongs to neighbors of (i,j) labelConnectedRegion(m,n,label) end
Sequential connected components Slide from J. Neira
Sequential connected components
Example Image Label equivalence table
Example Image Label equivalence table
Example Image Label equivalence table
Example Image Label equivalence table
Example Image Label equivalence table
Example Image Label equivalence table
Example Image Label equivalence table
Example Image Label equivalence table
Example Image Label equivalence table
Example Image Label equivalence table (2,3)
Example Image Label equivalence table
Example Image Label equivalence table
Example Image Label equivalence table
Example Image Label equivalence table
Example Image Label equivalence table
Example Image Label equivalence table (5,2)
Example Image Label equivalence table
Example Image Label equivalence table
Example Image Label equivalence table
Example Image Label equivalence table
Example Image Label equivalence table
Example Image Label equivalence table
Example Image Label equivalence table (5,2)
Example Image Label equivalence table
Example Image Label equivalence table
Region properties Given connected components, can compute simple features per blob, such as: Area (num pixels in the region) Centroid (average x and y position of pixels in the region) Bounding box (min and max coordinates) How could such features be useful? A1=20 0 A2=17 0
Issues How to demarcate multiple regions of interest? Count objects Compute further features per object What to do with “noisy” binary outputs? Holes Extra small fragments
Morphological operators Change the shape of the foreground regions/ objects. Useful to clean up result from thresholding Basic operators are: Dilation Erosion
Dilation Expands connected components Grow features Fill holes Before dilation After dilation
Erosion Erode connected components Shrink features Remove bridges, branches, noise Before erosionAfter erosion
Structuring elements Masks of varying shapes and sizes used to perform morphology, for example: Scan mask across foreground pixels to transform the binary image >> help strel
Dilation At each position: Dilation: OR (MAX) of everything inside the structuring element mask.
Example for Dilation (1D) Input image Structuring Element 1 Output Image 111 Adapted from T. Moeslund
Example for Dilation Input image Structuring Element 11 Output Image 111
Example for Dilation Input image Structuring Element 110 Output Image 111
Example for Dilation Input image Structuring Element 1101 Output Image 111
Example for Dilation Input image Structuring Element Output Image 111
Example for Dilation Input image Structuring Element Output Image 111
Example for Dilation Input image Structuring Element Output Image 111
Example for Dilation Input image Structuring Element Output Image 111
Example for Dilation Input image Structuring Element Output Image 111 Note that the object gets bigger and holes are filled. >> help imdilate
Example for Dilation Input image Structuring Element Output Image 111 Note that the object gets bigger and holes are filled. >> help imdilate
Erosion At each position: Erosion: AND (MIN) of everything inside the structuring element mask.
Example for Erosion (1D) Input image Structuring Element 0 Output Image 111 _
Example for Erosion (1D) Input image Structuring Element 00 Output Image 111 _
Example for Erosion Input image Structuring Element 000 Output Image 111
Example for Erosion Input image Structuring Element 0000 Output Image 111
Example for Erosion Input image Structuring Element Output Image 111
Example for Erosion Input image Structuring Element Output Image 111
Example for Erosion Input image Structuring Element Output Image 111
Example for Erosion Input image Structuring Element Output Image 111
Example for Erosion Input image Structuring Element Output Image 111
Example for Erosion Input image Structuring Element Output Image 111 Note that the object gets smaller >> help imerode
Opening Erode, then dilate Remove small objects, keep original shape Before openingAfter opening Slide from Kristen Grauman
Closing Dilate, then erode Fill holes, but keep original shape Before closingAfter closing Slide from Kristen Grauman
Morphology Operators on Grayscale Images Dilation and erosion typically performed on binary images. If image is grayscale: for dilation take the neighborhood max, for erosion take the min. originaldilated eroded Slide from Kristen Grauman
Matlab Create structure element se = strel(‘disk’, radius); Erosion imerode(image, se); Dilation imdilate(image, se); Opening imopen(image, se); Closing imclose(image, se); More possibilities bwmorph(image, ‘skel’); 73
Figure Ground Separation 74
Brightness Thresholding 75
Opening 76
Find the Largest Connected Region 77
Example Using Binary Image Analysis: segmentation of a liver Slide credit: Li Shen Slide from Kristen Grauman
Example Using Binary Image Analysis: Bg subtraction + blob detection … Slide from Kristen Grauman
University of Southern California Example Using Binary Image Analysis: Bg subtraction + blob detection Slide from Kristen Grauman