Post on 17-Jan-2016
transcript
1
Regions and Binary Images
Hao Jiang
Computer Science Department
Sept. 24, 2009
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);Slide 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);
Slide 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
Find Connected Regions
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 = 2for i = 1 to rows for j = 1 to cols if I(i, j) == 1 labelConnectedRegion(i, j, label) label ++; endend
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
Two Pass Method
We check each pixel from left to right and up to bottom If a pixel has no left and up foreground neighbor, we assign a
new label to the pixel If a pixel has only one left or up foreground neighbor, we
assign the label of the neighbor to the pixel If a pixel has both left and up foreground neighbors, and their
labels are the same, we assign the label of the neighbor to the pixel
If a pixel has both left and up foreground neighbors, and their labels are the different, we assign the label of the left neighbor to the pixel and use the up-left label pair to update the equivalency table.
We go through another pass to replace the labels to corresponding labels in the equivalency table
15
Example
16
1 1 1 1 1
1 1 1 1
1 1 1 1
1 1 1 1 1
1 1 1 1 1
2 2
3 3
4 4
5 5
6 6
7 7
8 8
9 9
Image Label equivalence table
Example
17
2 1 1 1 1
1 1 1 1
1 1 1 1
1 1 1 1 1
1 1 1 1 1
2 2
3 3
4 4
5 5
6 6
7 7
8 8
9 9
Image Label equivalence table
Example
18
2 2 1 1 1
1 1 1 1
1 1 1 1
1 1 1 1 1
1 1 1 1 1
2 2
3 3
4 4
5 5
6 6
7 7
8 8
9 9
Image Label equivalence table
Example
19
2 2 3 1 1
1 1 1 1
1 1 1 1
1 1 1 1 1
1 1 1 1 1
2 2
3 3
4 4
5 5
6 6
7 7
8 8
9 9
Image Label equivalence table
Example
20
2 2 3 3 1
1 1 1 1
1 1 1 1
1 1 1 1 1
1 1 1 1 1
2 2
3 3
4 4
5 5
6 6
7 7
8 8
9 9
Image Label equivalence table
Example
21
2 2 3 3 3
1 1 1 1
1 1 1 1
1 1 1 1 1
1 1 1 1 1
2 2
3 3
4 4
5 5
6 6
7 7
8 8
9 9
Image Label equivalence table
Example
22
2 2 3 3 3
2 1 1 1
1 1 1 1
1 1 1 1 1
1 1 1 1 1
2 2
3 3
4 4
5 5
6 6
7 7
8 8
9 9
Image Label equivalence table
Example
23
2 2 3 3 3
2 2 1 1
1 1 1 1
1 1 1 1 1
1 1 1 1 1
2 2
3 3
4 4
5 5
6 6
7 7
8 8
9 9
Image Label equivalence table
Example
24
2 2 3 3 3
2 2 2 1
1 1 1 1
1 1 1 1 1
1 1 1 1 1
2 2
3 3
4 4
5 5
6 6
7 7
8 8
9 9
Image Label equivalence table
Example
25
2 2 3 3 3
2 2 2 2
1 1 1 1
1 1 1 1 1
1 1 1 1 1
2 3
3 3
4 4
5 5
6 6
7 7
8 8
9 9
Image Label equivalence table
(2,3)
Example
26
2 2 3 3 3
2 2 2 2
2 1 1 1
1 1 1 1 1
1 1 1 1 1
2 3
3 3
4 4
5 5
6 6
7 7
8 8
9 9
Image Label equivalence table
Example
27
2 2 3 3 3
2 2 2 2
2 2 1 1
1 1 1 1 1
1 1 1 1 1
2 3
3 3
4 4
5 5
6 6
7 7
8 8
9 9
Image Label equivalence table
Example
28
2 2 3 3 3
2 2 2 2
2 2 4 1
1 1 1 1 1
1 1 1 1 1
2 3
3 3
4 4
5 5
6 6
7 7
8 8
9 9
Image Label equivalence table
Example
29
2 2 3 3 3
2 2 2 2
2 2 4 4
1 1 1 1 1
1 1 1 1 1
2 3
3 3
4 4
5 5
6 6
7 7
8 8
9 9
Image Label equivalence table
Example
30
2 2 3 3 3
2 2 2 2
2 2 4 4
5 1 1 1 1
1 1 1 1 1
2 3
3 3
4 4
5 5
6 6
7 7
8 8
9 9
Image Label equivalence table
Example
31
2 2 3 3 3
2 2 2 2
2 2 4 4
5 5 1 1 1
1 1 1 1 1
2 3
3 3
4 4
5 3
6 6
7 7
8 8
9 9
Image Label equivalence table
(5,2)
Example
32
2 2 3 3 3
2 2 2 2
2 2 4 4
5 5 2 1 1
1 1 1 1 1
2 3
3 3
4 4
5 3
6 6
7 7
8 8
9 9
Image Label equivalence table
Example
33
2 2 3 3 3
2 2 2 2
2 2 4 4
5 5 2 4 1
1 1 1 1 1
2 3
3 3
4 4
5 3
6 6
7 7
8 8
9 9
Image Label equivalence table
Example
34
2 2 3 3 3
2 2 2 2
2 2 4 4
5 5 2 4 4
1 1 1 1 1
2 3
3 3
4 4
5 3
6 6
7 7
8 8
9 9
Image Label equivalence table
Example
35
2 2 3 3 3
2 2 2 2
2 2 4 4
5 5 2 4 4
5 1 1 1 1
2 3
3 3
4 4
5 3
6 6
7 7
8 8
9 9
Image Label equivalence table
Example
36
2 2 3 3 3
2 2 2 2
2 2 4 4
5 5 2 4 4
5 5 1 1 1
2 3
3 3
4 4
5 3
6 6
7 7
8 8
9 9
Image Label equivalence table
Example
37
2 2 3 3 3
2 2 2 2
2 2 4 4
5 5 2 4 4
5 5 5 1 1
2 3
3 3
4 4
5 3
6 6
7 7
8 8
9 9
Image Label equivalence table
Example
38
2 2 3 3 3
2 2 2 2
2 2 4 4
5 5 2 4 4
5 5 5 5 1
2 3
3 3
4 4
5 3
6 6
7 7
8 8
9 9
Image Label equivalence table
(5,2)
Example
39
2 2 3 3 3
2 2 2 2
2 2 4 4
5 5 2 4 4
5 5 5 5 4
2 3
3 3
4 4
5 3
6 6
7 7
8 8
9 9
Image Label equivalence table
Example
40
3 3 3 3 3
3 3 3 3
3 3 4 4
3 3 3 4 4
3 3 3 3 4
2 3
3 3
4 4
5 3
6 6
7 7
8 8
9 9
Image Label equivalence table
Morphology Operations
Define
At = { p + t | p is a point in A}
Erosion
41
T = { t | At belongs to S}
A
S
Erosion(S, A)
Morphology Operations
Define
At = { p + t | p is a point in A}
Erosion
42
T = { t | At belongs to S}
S
What if A is
Morphology Operations
Define
At = { p + t | p is a point in A}
Dilation
43
T = Union of At and S for all t in S
S
What if A is Erosion(S, A)
Morphology Operations
Define
At = { p + t | p is a point in A}
Dilation
44
T = Union of At and S for all t in S
S
What if A is
Morphology Operations Define
At = { p + t | p is a point in A}
Dilation
45
T = Union of At and S for all t in S
What if A is
Opening
Erode, then dilate Remove small objects, keep original shape
Before opening After opening
Slide from Kristen Grauman
Closing
Dilate, then erode Fill holes, but keep original shape
Before closing After 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.
original dilated 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’);
49
Figure Ground Separation
50
Brightness Thresholding
51
Opening
52
Find the Largest Connected Region
53
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 Californiahttp://iris.usc.edu/~icohen/projects/vace/detection.htm
Example Using Binary Image Analysis:Bg subtraction + blob detection
Slide from Kristen Grauman