1 Regions and Binary Images Hao Jiang Computer Science Department Sept. 24, 2009.

Post on 17-Jan-2016

215 views 0 download

Transcript of 1 Regions and Binary Images Hao Jiang Computer Science Department Sept. 24, 2009.

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