Morphological Operators CS/BIOEN 4640: Image Processing Basics - - PowerPoint PPT Presentation

morphological operators
SMART_READER_LITE
LIVE PREVIEW

Morphological Operators CS/BIOEN 4640: Image Processing Basics - - PowerPoint PPT Presentation

Morphological Operators CS/BIOEN 4640: Image Processing Basics February 23, 2012 Common Morphological Operations Shrinking the foreground (erosion) Expanding the foreground (dilation) Removing holes in the foreground


slide-1
SLIDE 1

Morphological Operators

CS/BIOEN 4640: Image Processing Basics February 23, 2012

slide-2
SLIDE 2

Common Morphological Operations

◮ Shrinking the foreground (“erosion”) ◮ Expanding the foreground (“dilation”) ◮ Removing holes in the foreground (“closing”) ◮ Removing stray foreground pixels in background

(“opening”)

◮ Finding the outline of the foreground ◮ Finding the skeleton of the foreground

slide-3
SLIDE 3

Pixel Neighborhoods

Remember the two definitions of “neighbors” that we’ve discussed: 4 Neighborhood 8 Neighborhood

slide-4
SLIDE 4

Erosion Example

Change a foreground pixel to background if it has a background pixel as a 4-neighbor.

slide-5
SLIDE 5

Dilation Example

Change a background pixel to foreground if it has a foreground pixel as a 4-neighbor.

slide-6
SLIDE 6

Structuring Element

Definition

A structuring element is simply a binary image (or mask) that allows us to define arbitrary neighborhood structures. Example: This is the structuring element for the 4-neighborhood.

slide-7
SLIDE 7

Binary Images as Sets

We can think of a binary image I(u, v) as the set of all pixel locations in the foreground:

QI = {(u, v) | I(u, v) = 1}

To simplify notation, we’ll use a single variable for a coordinate pair, p = (u, v). So,

QI = {p | I(p) = 1}

slide-8
SLIDE 8

Set Operations = Point Operations

◮ Complement = Inversion

Let I denote image inversion (pointwise NOT)

QI = QI = {p ∈ Z2 | p / ∈ QI}

◮ Union = OR

Let I1 ∨ I2 be pointwise OR operation

QI1∨I2 = QI1 ∪ QI2

◮ Intersection = AND

Let I1 ∧ I2 be pointwise AND operation

QI1∧I2 = QI1 ∩ QI2

slide-9
SLIDE 9

More Image Operations

(Instead of QI, we’ll just use I to denote the set)

◮ Translation: Let d ∈ Z2

Id = {(p + d) | p ∈ I}

◮ Reflection:

I∗ = {−p | p ∈ I}

slide-10
SLIDE 10

Dilation

Definition

A dilation of an image I by the structure element H is given by the set operation

I ⊕ H = {(p + q) | p ∈ I, q ∈ H}

Alternative definition: Take the union of copies of the structuring element, Hp, centered at every pixel location

p in the foreground: I ⊕ H =

  • p∈I

Hp

slide-11
SLIDE 11

Dilation Algorithm

Uses equivalent formula I ⊕ H =

q∈H Iq:

Input: Image I, structuring element H Output: Image I′ = I ⊕ H

  • 1. Start with all-zero image I′
  • 2. Loop over all q ∈ H

3. Compute shifted image Iq 4. Update I′ = I′ ∨ Iq

slide-12
SLIDE 12

Erosion

Definition

A erosion of an image I by the structure element H is given by the set operation

I ⊖ H = {p ∈ Z2 | (p + q) ∈ I, for every q ∈ H}

Alternative definition: Keep only pixels p ∈ I such that

Hp fits inside I: I ⊖ H = {p | Hp ⊆ I}

slide-13
SLIDE 13

Duality of Erosion and Dilation

Erosion can be computed as a dilation of the background:

I ⊖ H = (I ⊕ H∗)

Same duality for dilation:

I ⊕ H = (I ⊖ H∗)

slide-14
SLIDE 14

Erosion Algorithm

Uses dual, I ⊖ H = (I ⊕ H∗) Input: Image I, structuring element H Output: Image I′ = I ⊖ H

  • 1. Start with inversion, I′ = I
  • 2. Dilate I′ with reflected structure element, H∗
  • 3. Invert I′
slide-15
SLIDE 15

Properties of Dilation

Similar to convolution properties, we need to assume the image domains are large enough that operations don’t “fall off” the edges. Commutativity:

I ⊕ H = H ⊕ I

Means we can switch the roles of the structuring element and the image

slide-16
SLIDE 16

Properties of Dilation

Associativity:

I1 ⊕ (I2 ⊕ I3) = (I1 ⊕ I2) ⊕ I3

Means that we can sometimes break up a big structuring element into smaller ones: That is, if H = H1 ⊕ H2 ⊕ . . . ⊕ Hn, then

I ⊕ H = (((I ⊕ H1) ⊕ H2) ⊕ . . . ⊕ Hn)

slide-17
SLIDE 17

Properties of Erosion

◮ It is NOT commutative:

I ⊖ H = H ⊖ I

◮ It is NOT associative, but:

(I ⊖ H1) ⊖ H2 = I ⊖ (H1 ⊕ H2)

slide-18
SLIDE 18

Some Particular Dilation Operators

◮ Identity: id = {(0, 0)}

I ⊕ id = id ⊕ I = I

◮ Shift by k pixels in x: Sx = {(k, 0)} ◮ Shift by k pixels in y: Sy = {(0, k)}

slide-19
SLIDE 19

Opening

Opening operation is an erosion followed by a dilation:

I ◦ H = (I ⊖ H) ⊕ H

Stray foreground structures that are smaller than the H structure element will disappear. Larger structures will remain.

slide-20
SLIDE 20

Closing

Closing operation is a dilation followed by an erosion:

I • H = (I ⊕ H) ⊖ H

Holes in the foreground that are smaller than H will be filled.

slide-21
SLIDE 21

Improving a Segmentation

Original image Initial threshold

slide-22
SLIDE 22

Improving a Segmentation

Original image After opening

slide-23
SLIDE 23

Improving a Segmentation

Original image After closing

slide-24
SLIDE 24

Outline

The outline image B(u, v) of a binary object can be computed using a dilation followed by a subtraction (or XOR operation):

I′ = I ⊖ H B(u, v) = XOR(I′(u, v), I(u, v))

slide-25
SLIDE 25

Outline

slide-26
SLIDE 26

Outline Example

Binary segmentation After outline operation

slide-27
SLIDE 27

Skeletonize

Repeatedly run erosion, stop when 1-pixel thick

slide-28
SLIDE 28

Grayscale Morphology

◮ We can also apply morphological operators to

grayscale images.

◮ Now our structuring elements are real-valued

H(i, j) ∈ R. That is, they are grayscale images.

◮ Need to make a distinction between 0 and “don’t

care” entries.

slide-29
SLIDE 29

Grayscale Morphology

Dilation:

(I ⊕ H)(u, v) = max

(i,j)∈H{I(u + i, v + j) + H(i, j)}

Erosion:

(I ⊖ H)(u, v) = min

(i,j)∈H{I(u + i, v + j) + H(i, j)}

slide-30
SLIDE 30

Link to ImageJ Morphology Package

http://rsbweb.nih.gov/ij/plugins/ gray-morphology.html