Morphological OperatorsSecure Site my.eng.utah.edu/~cs4640/slides/Lecture11.pdf · Common...

Post on 01-Nov-2020

3 views 0 download

Transcript of Morphological OperatorsSecure Site my.eng.utah.edu/~cs4640/slides/Lecture11.pdf · Common...

Morphological Operators

CS/BIOEN 4640: Image Processing Basics

February 23, 2012

Common Morphological Operations

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

(“opening”)I Finding the outline of the foregroundI Finding the skeleton of the foreground

Pixel Neighborhoods

Remember the two definitions of “neighbors” that we’vediscussed:

4 Neighborhood 8 Neighborhood

Erosion Example

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

Dilation Example

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

Structuring Element

DefinitionA structuring element is simply a binary image (ormask) that allows us to define arbitrary neighborhoodstructures.

Example:

This is the structuring element for the 4-neighborhood.

Binary Images as Sets

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

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

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

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

Set Operations = Point OperationsI Complement = Inversion

Let I denote image inversion (pointwise NOT)

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

I Union = ORLet I1 ∨ I2 be pointwise OR operation

QI1∨I2 = QI1 ∪QI2

I Intersection = ANDLet I1 ∧ I2 be pointwise AND operation

QI1∧I2 = QI1 ∩QI2

More Image Operations

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

I Translation: Let d ∈ Z2

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

I Reflection:

I∗ = {−p | p ∈ I}

Dilation

DefinitionA dilation of an image I by the structure element H isgiven by the set operation

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

Alternative definition: Take the union of copies of thestructuring element, Hp, centered at every pixel locationp in the foreground:

I ⊕ H =⋃p∈I

Hp

Dilation Algorithm

Uses equivalent formula I ⊕ H =⋃

q∈H Iq:

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

1. Start with all-zero image I′

2. Loop over all q ∈ H3. Compute shifted image Iq

4. Update I′ = I′ ∨ Iq

Erosion

DefinitionA erosion of an image I by the structure element H isgiven by the set operation

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

Alternative definition: Keep only pixels p ∈ I such thatHp fits inside I:

I H = {p | Hp ⊆ I}

Duality of Erosion and Dilation

Erosion can be computed as a dilation of thebackground:

I H = (I ⊕ H∗)

Same duality for dilation:

I ⊕ H = (I H∗)

Erosion Algorithm

Uses dual, I H = (I ⊕ H∗)

Input: Image I, structuring element HOutput: Image I′ = I H

1. Start with inversion, I′ = I2. Dilate I′ with reflected structure element, H∗

3. Invert I′

Properties of Dilation

Similar to convolution properties, we need to assume theimage 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 elementand the image

Properties of Dilation

Associativity:

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

Means that we can sometimes break up a big structuringelement into smaller ones:

That is, if H = H1 ⊕ H2 ⊕ . . .⊕ Hn, then

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

Properties of Erosion

I It is NOT commutative:

I H 6= H I

I It is NOT associative, but:

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

Some Particular Dilation Operators

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

I ⊕ id = id⊕ I = I

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

Opening

Opening operation is an erosion followed by a dilation:

I ◦ H = (I H)⊕ H

Stray foreground structures that are smaller than the Hstructure element will disappear. Larger structures willremain.

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 befilled.

Improving a Segmentation

Original image Initial threshold

Improving a Segmentation

Original image After opening

Improving a Segmentation

Original image After closing

Outline

The outline image B(u, v) of a binary object can becomputed using a dilation followed by a subtraction (orXOR operation):

I′ = I H

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

Outline

Outline Example

Binary segmentation After outline operation

Skeletonize

Repeatedly run erosion, stop when 1-pixel thick

Grayscale Morphology

I We can also apply morphological operators tograyscale images.

I Now our structuring elements are real-valuedH(i, j) ∈ R. That is, they are grayscale images.

I Need to make a distinction between 0 and “don’tcare” entries.

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

Link to ImageJ Morphology Package

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