Low level Computer Vision 1. Thresholding 2. Convolution 3. Morphological Operations 4. Connected...

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

Transcript of Low level Computer Vision 1. Thresholding 2. Convolution 3. Morphological Operations 4. Connected...

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