Binary Image Analysis

Download as ppt, pdf, or txt
Download as ppt, pdf, or txt
You are on page 1of 33

Binary Image Analysis

Binary image analysis


• consists of a set of image analysis operations
that are used to produce or process binary
images, usually images of 0’s and 1’s.

0 represents the background


1 represents the foreground

00010010001000
00011110001000
00010010001000
1
Binary Image Analysis
• is used in a number of practical applications

• part inspection

• riveting

• fish counting

• document processing

2
What kinds of operations?

 Separate objects from background


and from one another

 Aggregate pixels for each object

 Compute features for each object


3
Example: red blood cell image
 Many blood cells
are separate
objects
 Many touch – bad!
 Salt and pepper
noise from
thresholding
 How useable is this
data?

4
Results of analysis
 63 separate
objects
detected
 Single cells
have area
about 50
 Noise spots
 Gobs of cells

5
Useful Operations

1. Thresholding a gray-tone image

2. Determining good thresholds

3. Connected components analysis

4. Binary mathematical morphology

5. All sorts of feature extractors


(area, centroid, circularity, …)

6
Thresholding
 Background is black
 Healthy cherry is
bright
 Bruise is medium dark
 Histogram shows two
cherry regions (black
background has been
removed)
pixel
counts

0 256
gray-tone values 7
Histogram-Directed Thresholding

How can we use a histogram to separate an


image into 2 (or several) different regions?

Is there a single clear threshold? 2? 3?


8
Automatic Thresholding: Otsu’s Method

Grp 1 Grp 2
Assumption: the histogram is bimodal

Method: find the threshold t that minimizes


the weighted sum of within-group variances
for the two groups that result from separating
the gray tones at value t.

See text (at end of Chapter 3) for the recurrence relations;


in practice, this operator works very well for true bimodal
distributions and not too badly for others.
9
Thresholding Example

10
Connected Components Labeling
Once you have a binary image, you can identify and
then analyze each connected set of pixels.

The connected components operation takes in a binary image


and produces a labeled image in which each pixel has the
integer label of either the background (0) or a component.

11
Methods for CC Analysis
1. Recursive Tracking (almost never used)

2. Parallel Growing (needs parallel hardware)

3. Row-by-Row (most common)

• Classical Algorithm (see text)

• Efficient Run-Length Algorithm


(developed for speed in real
industrial applications)

12
Equivalent Labels
Original Binary Image

0 0 0 1 1 1 0 0 0 0111100001
0 0 0 1 1 1 1 0 0 0111100011
0 0 0 1 1 1 1 1 0 0111100111
0 0 0 1 1 1 1 1 1 0111100111
0 0 0 1 1 1 1 1 1 1111100111
0 0 0 1 1 1 1 1 1 1111100111
0 0 0 1 1 1 1 1 1 1111111111
0 0 0 1 1 1 1 1 1 1111111111
0 0 0 1 1 1 1 1 1 0000011111

13
Equivalent Labels
The Labeling Process

0001110000222200003 12
0001111000222200033 13
0001111100222200333
0001111110222200333
0001111111111100333
0001111111111100333
0001111111111111111
0001111111111111111
0001111110000011111

14
Run-Length Data Structure
01234
0 11 11
row scol ecol label
1 11 1
2 1 1 1 1 Binary 0 UNUSED 0
3 Image 1
0 0 1 0
4 1111 2
0 3 4 0
3
1 0 1 0
Rstart Rend 4
1 4 4 0
01 2 5
2 0 2 0
13 4 6
2 4 4 0
25 6 Row Index 7
4 1 4 0
30 0
Runs
47 7 15
Run-Length Algorithm
Procedure run_length_classical
{
initialize Run-Length and Union-Find data structures
count <- 0

/* Pass 1 (by rows) */

for each current row and its previous row


{
move pointer P along the runs of current row
move pointer Q along the runs of previous row

16
Case 1: No Overlap
Q Q

|/////| |///| |///|


|/////| |////| |/////|
P P

/* new label */
count <- count + 1 /* check Q’s next run */
label(P) <- count Q <- Q + 1
P <- P + 1

17
Case 2: Overlap
Subcase 1: Subcase 2:
P’s run has no label yet P’s run has a label that is
different from Q’s run
Q Q
|///////| |/////| |///////| |/////|
|/////////////| |/////////////|
P P
label(P) <- label(Q) union(label(P),label(Q))
move pointer(s) move pointer(s)
}

18
Pass 2 (by runs)
/* Relabel each run with the name of the
equivalence class of its label */
For each run M
{
label(M) <- find(label(M))
}

}
where union and find refer to the operations of the
Union-Find data structure, which keeps track of sets
of equivalent labels.

19
Labeling shown as Pseudo-Color

connected
components
of 1’s from
thresholded
image

connected
components
of cluster
labels

20
Mathematical Morphology
Binary mathematical morphology consists of two
basic operations

dilation and erosion

and several composite relations

closing and opening


conditional dilation
...

21
Dilation
Dilation expands the connected sets of 1s of a binary image.

It can be used for

1. growing features

2. filling holes and gaps

22
Erosion
Erosion shrinks the connected sets of 1s of a binary image.

It can be used for

1. shrinking features

2. Removing bridges, branches and small protrusions

23
Structuring Elements

A structuring element is a shape mask used in


the basic morphological operations.

They can be any shape and size that is


digitally representable, and each has an origin.

box
hexagon disk
something

box(length,width) disk(diameter)
24
Dilation with Structuring Elements
The arguments to dilation and erosion are
1. a binary image B
2. a structuring element S

dilate(B,S) takes binary image B, places the origin


of structuring element S over each 1-pixel, and ORs
the structuring element S into the output image at
the corresponding position.

0000 dilate 0110


1
0110 0111
11
0000 0000
S
B origin BS
25
Erosion with Structuring Elements

erode(B,S) takes a binary image B, places the origin


of structuring element S over every pixel position, and
ORs a binary 1 into that position of the output image only if
every position of S (with a 1) covers a 1 in B.

origin
0 0 1 1 0 0 0 0 0 0
1 erode
0 0 1 1 0 0 0 1 1 0
1
0 0 1 1 0 0 0 1 1 0
1
1 1 1 1 1 0 0 0 0 0

B S B S
26
Example 1 to Try
0 0 1 0 0 1 0 0
0 0 1 1 1 1 1 0
1 1 1 1 1 1 0 0 S
B 1 1 1 1 1 1 1 1
111 erode
0 0 1 1 1 1 0 0
111
0 0 1 1 1 1 0 0
111
0 0 1 1 1 1 0 0

dilate with same


structuring element

27
Example 2 to Try
B
0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0
S
0 0 0 0 0 0 0 0 1 1 1 1 1 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 1 1 1 0
0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 1 1 1 1 1
0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 1 1 1 1 1
0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 1 1 1 1 1
0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 1 1 1 0
0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0
0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

First erode and then dilate with the same S.


28
Opening and Closing

• Closing is the compound operation of dilation followed


by erosion (with the same structuring element)

• Opening is the compound operation of erosion followed


by dilation (with the same structuring element)

29
Gear Tooth Inspection

original
binary
image
How did
they do it?

detected
defects

30
Region Properties
Properties of the regions can be used to recognize objects.

• geometric properties (Ch 3)

• gray-tone properties

• color properties

• texture properties

• shape properties (a few in Ch 3)

• motion properties

• relationship properties (1 in Ch 3)
31
Geometric and Shape Properties

• area
• centroid
• perimeter
• perimeter length
• circularity
• elongation
• mean and standard deviation of radial distance
• bounding box
• extremal axis length from bounding box
• second order moments (row, column, mixed)
• lengths and orientations of axes of best-fit ellipse

Which are statistical? Which are structural?

32
Region Adjacency Graph

A region adjacency graph (RAG) is a graph in which


each node represents a region of the image and an edge
connects two nodes if the regions are adjacent.

This is jumping ahead a little bit.

We’ll consider this further for structural image analysis.

33

You might also like