48
Low level Computer Vision 1. Thresholding 2. Convolution 3. Morphological Operations 4. Connected Component Extraction 5. Feature Extraction 1

Low level Computer Vision 1. Thresholding 2. Convolution 3. Morphological Operations 4. Connected Component Extraction 5. Feature Extraction 1

Embed Size (px)

Citation preview

Page 1: Low level Computer Vision 1. Thresholding 2. Convolution 3. Morphological Operations 4. Connected Component Extraction 5. Feature Extraction 1

Low level Computer Vision1. Thresholding

2. Convolution

3. Morphological Operations

4. Connected Component Extraction

5. Feature Extraction

1

Page 2: Low level Computer Vision 1. Thresholding 2. Convolution 3. Morphological Operations 4. Connected Component Extraction 5. Feature Extraction 1

3. Mathematical Morphology Morphology: Study of forms of animals

and plants Mathematical Morphology: Study of

shapes Similar to convolution Arithmetic operations Set Operations

2

Page 3: Low level Computer Vision 1. Thresholding 2. Convolution 3. Morphological Operations 4. Connected Component Extraction 5. Feature Extraction 1

Need to define Image as a Set Given a binary image I (r,c), assume 1

correspond to object 0 correspond to backround. Define a set with elements to the coordinates of the object

X = { (r1,c1), (r2,c2),….}

3

Page 4: Low level Computer Vision 1. Thresholding 2. Convolution 3. Morphological Operations 4. Connected Component Extraction 5. Feature Extraction 1

Set OperationsSet Operations

Page 5: Low level Computer Vision 1. Thresholding 2. Convolution 3. Morphological Operations 4. Connected Component Extraction 5. Feature Extraction 1

Set Operations on ImagesSet Operations on ImagesAND, ORAND, OR

Set Operations on ImagesSet Operations on ImagesAND, ORAND, OR

Page 6: Low level Computer Vision 1. Thresholding 2. Convolution 3. Morphological Operations 4. Connected Component Extraction 5. Feature Extraction 1

TRANSLATION REFLECTIONTRANSLATION REFLECTIONTRANSLATION REFLECTIONTRANSLATION REFLECTION

Page 7: Low level Computer Vision 1. Thresholding 2. Convolution 3. Morphological Operations 4. Connected Component Extraction 5. Feature Extraction 1

Set OperationsSet Operations

Page 8: Low level Computer Vision 1. Thresholding 2. Convolution 3. Morphological Operations 4. Connected Component Extraction 5. Feature Extraction 1

Morphologic Operations

8

Binary mathematical morphology consists of twobasic operations

dilation and erosion

and several composite relations

closing and opening

Page 9: Low level Computer Vision 1. Thresholding 2. Convolution 3. Morphological Operations 4. Connected Component Extraction 5. Feature Extraction 1

Dilation:

9

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

It can be used for

1. growing features

2. filling holes and gaps

Page 10: Low level Computer Vision 1. Thresholding 2. Convolution 3. Morphological Operations 4. Connected Component Extraction 5. Feature Extraction 1

Structuring Elements

10

A structuring element is a shape mask used inthe basic morphological operations.

They can be any shape and size that isdigitally representable, and each has an origin.

boxhexagon disk

something

box(length,width) disk(diameter)

Page 11: Low level Computer Vision 1. Thresholding 2. Convolution 3. Morphological Operations 4. Connected Component Extraction 5. Feature Extraction 1

Dilation with Structuring Element S:B+S ={ Z: (Sz)∩ B≠ Φ}

11

The arguments to dilation and erosion are

1. a binary image B2. a structuring element S

dilate(B,S) takes binary image B, places the originof structuring element S over each 1-pixel, and ORsthe structuring element S into the output image atthe corresponding position.

0 0 0 00 1 1 00 0 0 0

11 1

0 1 1 00 1 1 10 0 0 0

originBS

dilate

B S

Page 12: Low level Computer Vision 1. Thresholding 2. Convolution 3. Morphological Operations 4. Connected Component Extraction 5. Feature Extraction 1

DILATIONDILATION

Page 13: Low level Computer Vision 1. Thresholding 2. Convolution 3. Morphological Operations 4. Connected Component Extraction 5. Feature Extraction 1

DILATIONDILATION

Page 14: Low level Computer Vision 1. Thresholding 2. Convolution 3. Morphological Operations 4. Connected Component Extraction 5. Feature Extraction 1

Erosion B-S ={ Z: (Sz) B}

14

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

Page 15: Low level Computer Vision 1. Thresholding 2. Convolution 3. Morphological Operations 4. Connected Component Extraction 5. Feature Extraction 1

Erosion with Structuring Elements

15

erode(B,S) takes a binary image B, places the origin of structuring element S over every pixel position, andORs a binary 1 into that position of the output image only ifevery position of S (with a 1) covers a 1 in B.

0 0 1 1 00 0 1 1 00 0 1 1 01 1 1 1 1

111

0 0 0 0 00 0 1 1 00 0 1 1 00 0 0 0 0

B S

origin

erode

B S

Page 16: Low level Computer Vision 1. Thresholding 2. Convolution 3. Morphological Operations 4. Connected Component Extraction 5. Feature Extraction 1

EROSİON:EROSİON:

Page 17: Low level Computer Vision 1. Thresholding 2. Convolution 3. Morphological Operations 4. Connected Component Extraction 5. Feature Extraction 1

IMAGE ENHANCEMENT WİTH MORPHOLOGYIMAGE ENHANCEMENT WİTH MORPHOLOGY

Page 18: Low level Computer Vision 1. Thresholding 2. Convolution 3. Morphological Operations 4. Connected Component Extraction 5. Feature Extraction 1

Example to Try

18

0 0 1 0 0 1 0 0 0 0 1 1 1 1 1 0 1 1 1 1 1 1 0 01 1 1 1 1 1 1 10 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0

1 1 11 1 11 1 1

erode

dilate with same structuring element

SB

Page 19: Low level Computer Vision 1. Thresholding 2. Convolution 3. Morphological Operations 4. Connected Component Extraction 5. Feature Extraction 1

Opening and Closing

19

• 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)

Page 20: Low level Computer Vision 1. Thresholding 2. Convolution 3. Morphological Operations 4. Connected Component Extraction 5. Feature Extraction 1

Use of Opening

20

Original Opening Corners

1. What kind of structuring element was used in the opening?

2. How did we get the corners?

Page 21: Low level Computer Vision 1. Thresholding 2. Convolution 3. Morphological Operations 4. Connected Component Extraction 5. Feature Extraction 1

OPENİNG AND CLOSİNGOPENİNG AND CLOSİNGOPENİNG AND CLOSİNGOPENİNG AND CLOSİNG

Page 22: Low level Computer Vision 1. Thresholding 2. Convolution 3. Morphological Operations 4. Connected Component Extraction 5. Feature Extraction 1

FINGERPRİNT RECOGNİTİONFINGERPRİNT RECOGNİTİON

Page 23: Low level Computer Vision 1. Thresholding 2. Convolution 3. Morphological Operations 4. Connected Component Extraction 5. Feature Extraction 1

HOW DO YOU REMOVE THE HOLESHole: A closed backround region surrounded by object pixels

HOW DO YOU REMOVE THE HOLESHole: A closed backround region surrounded by object pixels

Page 24: Low level Computer Vision 1. Thresholding 2. Convolution 3. Morphological Operations 4. Connected Component Extraction 5. Feature Extraction 1

Morphological Analysis for Bone detectionMorphological Analysis for Bone detection

Page 25: Low level Computer Vision 1. Thresholding 2. Convolution 3. Morphological Operations 4. Connected Component Extraction 5. Feature Extraction 1

OBJECT DETECTIONOBJECT DETECTION

Page 26: Low level Computer Vision 1. Thresholding 2. Convolution 3. Morphological Operations 4. Connected Component Extraction 5. Feature Extraction 1

BOUNDARY EXTRACTİONBoundary: A set of one-pixel-wide

connected pixels which has at least one neighbor outside the object

BOUNDARY EXTRACTİONBoundary: A set of one-pixel-wide

connected pixels which has at least one neighbor outside the object

Page 27: Low level Computer Vision 1. Thresholding 2. Convolution 3. Morphological Operations 4. Connected Component Extraction 5. Feature Extraction 1

BOUNDARY EXTRACTİONBOUNDARY EXTRACTİON

Page 28: Low level Computer Vision 1. Thresholding 2. Convolution 3. Morphological Operations 4. Connected Component Extraction 5. Feature Extraction 1

Skeleton finding:Skeleton: Set of one-pixel wide connected pixels which

are at equal distance from at least two boundary pixels

Skeleton finding:Skeleton: Set of one-pixel wide connected pixels which

are at equal distance from at least two boundary pixels

Page 29: Low level Computer Vision 1. Thresholding 2. Convolution 3. Morphological Operations 4. Connected Component Extraction 5. Feature Extraction 1

Morphological Image ProcessingMorphological Image Processing

Page 30: Low level Computer Vision 1. Thresholding 2. Convolution 3. Morphological Operations 4. Connected Component Extraction 5. Feature Extraction 1

Morphological Image ProcessingMorphological Image Processing

Page 31: Low level Computer Vision 1. Thresholding 2. Convolution 3. Morphological Operations 4. Connected Component Extraction 5. Feature Extraction 1
Page 32: Low level Computer Vision 1. Thresholding 2. Convolution 3. Morphological Operations 4. Connected Component Extraction 5. Feature Extraction 1

Morphological OperationsMorphological Operations

Page 33: Low level Computer Vision 1. Thresholding 2. Convolution 3. Morphological Operations 4. Connected Component Extraction 5. Feature Extraction 1

Morphological OperationsMorphological Operations

Page 34: Low level Computer Vision 1. Thresholding 2. Convolution 3. Morphological Operations 4. Connected Component Extraction 5. Feature Extraction 1

Gear Tooth Inspection

34

originalbinary image

detecteddefects

How didthey do it?

Page 35: Low level Computer Vision 1. Thresholding 2. Convolution 3. Morphological Operations 4. Connected Component Extraction 5. Feature Extraction 1

Some Details

35

Page 36: Low level Computer Vision 1. Thresholding 2. Convolution 3. Morphological Operations 4. Connected Component Extraction 5. Feature Extraction 1

Region Properties-Features

36

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)

Page 37: Low level Computer Vision 1. Thresholding 2. Convolution 3. Morphological Operations 4. Connected Component Extraction 5. Feature Extraction 1

Geometric and Shape Properties

37

• 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

Page 38: Low level Computer Vision 1. Thresholding 2. Convolution 3. Morphological Operations 4. Connected Component Extraction 5. Feature Extraction 1

4. Connected Components Labeling

38

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.

binary image after morphology connected components

Page 39: Low level Computer Vision 1. Thresholding 2. Convolution 3. Morphological Operations 4. Connected Component Extraction 5. Feature Extraction 1

Methods for CC Analysis

39

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)

Page 40: Low level Computer Vision 1. Thresholding 2. Convolution 3. Morphological Operations 4. Connected Component Extraction 5. Feature Extraction 1

Equivalent Labels

40

0 0 0 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 10 0 0 1 1 1 1 0 0 0 1 1 1 1 0 0 0 1 10 0 0 1 1 1 1 1 0 0 1 1 1 1 0 0 1 1 10 0 0 1 1 1 1 1 1 0 1 1 1 1 0 0 1 1 10 0 0 1 1 1 1 1 1 1 1 1 1 1 0 0 1 1 10 0 0 1 1 1 1 1 1 1 1 1 1 1 0 0 1 1 10 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 10 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 10 0 0 1 1 1 1 1 1 0 0 0 0 0 1 1 1 1 1

Original Binary Image

Page 41: Low level Computer Vision 1. Thresholding 2. Convolution 3. Morphological Operations 4. Connected Component Extraction 5. Feature Extraction 1

Equivalent Labels

41

0 0 0 1 1 1 0 0 0 0 2 2 2 2 0 0 0 0 30 0 0 1 1 1 1 0 0 0 2 2 2 2 0 0 0 3 30 0 0 1 1 1 1 1 0 0 2 2 2 2 0 0 3 3 30 0 0 1 1 1 1 1 1 0 2 2 2 2 0 0 3 3 30 0 0 1 1 1 1 1 1 1 1 1 1 1 0 0 3 3 30 0 0 1 1 1 1 1 1 1 1 1 1 1 0 0 3 3 30 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 10 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 10 0 0 1 1 1 1 1 1 0 0 0 0 0 1 1 1 1 1

The Labeling Process

1 21 3

Page 42: Low level Computer Vision 1. Thresholding 2. Convolution 3. Morphological Operations 4. Connected Component Extraction 5. Feature Extraction 1

Run-Length Data Structure

42

1 1 1 11 1 11 1 1 1

1 1 1 1

0 1 2 3 401234

U N U S E D 00 0 1 00 3 4 01 0 1 01 4 4 02 0 2 02 4 4 04 1 4 0

row scol ecol label

01234567

Rstart Rend

1 23 45 60 07 7

01234 Runs

Row Index

BinaryImage

Page 43: Low level Computer Vision 1. Thresholding 2. Convolution 3. Morphological Operations 4. Connected Component Extraction 5. Feature Extraction 1

Run-Length Algorithm

43

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

Page 44: Low level Computer Vision 1. Thresholding 2. Convolution 3. Morphological Operations 4. Connected Component Extraction 5. Feature Extraction 1

Case 1: No Overlap

44

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

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

Q

P

Q

P

/* new label */ count <- count + 1 label(P) <- count P <- P + 1

/* check Q’s next run */Q <- Q + 1

Page 45: Low level Computer Vision 1. Thresholding 2. Convolution 3. Morphological Operations 4. Connected Component Extraction 5. Feature Extraction 1

Case 2: Overlap

45

Subcase 1: P’s run has no label yet

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

Subcase 2:P’s run has a label that isdifferent from Q’s run

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

QQ

P P

label(P) <- label(Q)move pointer(s)

union(label(P),label(Q))move pointer(s)

}

Page 46: Low level Computer Vision 1. Thresholding 2. Convolution 3. Morphological Operations 4. Connected Component Extraction 5. Feature Extraction 1

Pass 2 (by runs)

46

/* 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 theUnion-Find data structure, which keeps track of setsof equivalent labels.

Page 47: Low level Computer Vision 1. Thresholding 2. Convolution 3. Morphological Operations 4. Connected Component Extraction 5. Feature Extraction 1

Labeling shown as Pseudo-Color

47

connectedcomponentsof 1’s fromthresholdedimage

connectedcomponentsof clusterlabels

Page 48: Low level Computer Vision 1. Thresholding 2. Convolution 3. Morphological Operations 4. Connected Component Extraction 5. Feature Extraction 1

Region Adjacency Graph

48

A region adjacency graph (RAG) is a graph in whicheach node represents a region of the image and an edgeconnects two nodes if the regions are adjacent.

1

2

34

1 2

34