stockman cse803 fall 20091 binary image proc: week 2 getting a binary image connected components...

55
Stockman CSE803 Fall 2009 1 Binary Image Proc: week 2 Getting a binary image Connected components extraction Morphological filtering Extracting numerical features from regions

Post on 21-Dec-2015

222 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Stockman CSE803 Fall 20091 Binary Image Proc: week 2 Getting a binary image Connected components extraction Morphological filtering Extracting numerical

Stockman CSE803 Fall 2009 1

Binary Image Proc: week 2

Getting a binary image Connected components extraction Morphological filtering Extracting numerical features from

regions

Page 2: Stockman CSE803 Fall 20091 Binary Image Proc: week 2 Getting a binary image Connected components extraction Morphological filtering Extracting numerical

Stockman CSE803 Fall 2009 2

Quick look at thresholding

Separate objects from background.

2 class or many class problem?

How to do it? Discuss methods later.

Page 3: Stockman CSE803 Fall 20091 Binary Image Proc: week 2 Getting a binary image Connected components extraction Morphological filtering Extracting numerical

Stockman CSE803 Fall 2009 3

Cherry image shows 3 regions

Background is black Healthy cherry is bright Bruise is medium dark Histogram shows two cherry

regions (black background has been removed)

Use this gray value to separate

Page 4: Stockman CSE803 Fall 20091 Binary Image Proc: week 2 Getting a binary image Connected components extraction Morphological filtering Extracting numerical

Stockman CSE803 Fall 2009 4

Choosing a threshold Common to find the deepest valley

between two modes of bimodal histogram Or, can level-slice using the intensities

values a and b that bracket the mode of the desired objects

Can fit two or more Gaussian curves to the histogram

Can do optimization on above (Ohta et al)

Page 5: Stockman CSE803 Fall 20091 Binary Image Proc: week 2 Getting a binary image Connected components extraction Morphological filtering Extracting numerical

Stockman CSE803 Fall 2009 5

Connected components

Assume thresholding obtained binary image

Aggregate pixels of each object 2 different program controls Different uses of data structures Related to paint/search algs Compute features from each object region

Page 6: Stockman CSE803 Fall 20091 Binary Image Proc: week 2 Getting a binary image Connected components extraction Morphological filtering Extracting numerical

Stockman CSE803 Fall 2009 6

Notes on Binary Image Proc Connected Components Algorithms Separate objects from background Aggregate pixels for each object Compute features for each object Different ways of program control Different uses of data structures Related to paint/search algs

Page 7: Stockman CSE803 Fall 20091 Binary Image Proc: week 2 Getting a binary image Connected components extraction Morphological filtering Extracting numerical

Stockman CSE803 Fall 2009 7

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?

Page 8: Stockman CSE803 Fall 20091 Binary Image Proc: week 2 Getting a binary image Connected components extraction Morphological filtering Extracting numerical

Stockman CSE803 Fall 2009 8

Cleaning up thresholding results

Can delete object pixels on boundary to better separate parts.

Can fill small holes Can delete tiny

objects (last 2 are “salt-

and-pepper” noise)

Page 9: Stockman CSE803 Fall 20091 Binary Image Proc: week 2 Getting a binary image Connected components extraction Morphological filtering Extracting numerical

Stockman CSE803 Fall 2009 9

Removing salt-and-pepper Change pixels all

(some?) of whose neighbors are different (coercion!): see hole filled at right

Delete objects that are tiny relative to targets: see some islands removed at right

Page 10: Stockman CSE803 Fall 20091 Binary Image Proc: week 2 Getting a binary image Connected components extraction Morphological filtering Extracting numerical

Stockman CSE803 Fall 2009 10

Simple morphological cleanup

Can be done just after thresholding -- remove salt and pepper Can be done after connected

components are extracted -- discard regions that are too

small or too large to be the target

Page 11: Stockman CSE803 Fall 20091 Binary Image Proc: week 2 Getting a binary image Connected components extraction Morphological filtering Extracting numerical

Stockman CSE803 Fall 2009 11

CC analysis of red blood cells 63 separate

objects detected

Single cells have area about 50

Noise spots Gobs of

cells

Page 12: Stockman CSE803 Fall 20091 Binary Image Proc: week 2 Getting a binary image Connected components extraction Morphological filtering Extracting numerical

Stockman CSE803 Fall 2009 12

More control of imaging More uniform

objects More uniform

background Thresholding

works Objects

actually separated

Page 13: Stockman CSE803 Fall 20091 Binary Image Proc: week 2 Getting a binary image Connected components extraction Morphological filtering Extracting numerical

Stockman CSE803 Fall 2009 13

Results of “pacmen” analysis 15 objects

detected Location

known Area known 3 distinct

clusters of 5 values of area; 85, 145, 293

Page 14: Stockman CSE803 Fall 20091 Binary Image Proc: week 2 Getting a binary image Connected components extraction Morphological filtering Extracting numerical

Stockman CSE803 Fall 2009 14

Results of “coloring” objects Each object

is a connected set of pixels

Object label is “color”

How is this done?

Page 15: Stockman CSE803 Fall 20091 Binary Image Proc: week 2 Getting a binary image Connected components extraction Morphological filtering Extracting numerical

Stockman CSE803 Fall 2009 15

Extracting components: Alg A

Collect connected foreground pixels into separate objects – label pixels of same object with same color

A) collect by “random access” of pixels using “paint” or “fill” algorithm

Page 16: Stockman CSE803 Fall 20091 Binary Image Proc: week 2 Getting a binary image Connected components extraction Morphological filtering Extracting numerical

Stockman CSE803 Fall 2009 16

Extracting “white regions” Program learns white

from training set of sample pixels.

Aggregate similar white neighbors to form regions.

Regions can then be classified as characters.

(Work contributed by David Moore, CSE 803.)

(Left) input RGB image of a NASA sign

(Right) output is a labeled image.

Page 17: Stockman CSE803 Fall 20091 Binary Image Proc: week 2 Getting a binary image Connected components extraction Morphological filtering Extracting numerical

Stockman CSE803 Fall 2009 17

paint/fill algorithm Obj region

must be bounded by background

Start at any pixel [r,c] inside obj

Recursively color neighbors

Page 18: Stockman CSE803 Fall 20091 Binary Image Proc: week 2 Getting a binary image Connected components extraction Morphological filtering Extracting numerical

Stockman CSE803 Fall 2009 18

Events of paint/fill algorithm PP denotes “processing point” If PP outside image, return to prior PP If PP already labeled, return to prior PP If PP is background pixel, return to prior PP If PP is unlabeled object pixel, then 1) label PP with current color code 2) recursively label neighbors N1, …, N8 (or N1, …, N4)

Page 19: Stockman CSE803 Fall 20091 Binary Image Proc: week 2 Getting a binary image Connected components extraction Morphological filtering Extracting numerical

Stockman CSE803 Fall 2009 19

Recursive Paint/Fill Alg: 1 region

Color closed boundary with L

Choose pixel [r,c] inside boundary

Call FILL

FILL ( I, r, c, L) If [r,c] is out, return If I[r,c] == L, return I[r,c] L // color it For all neighbors

[rn,cn] FILL(I, rn, cn, L)

Page 20: Stockman CSE803 Fall 20091 Binary Image Proc: week 2 Getting a binary image Connected components extraction Morphological filtering Extracting numerical

Stockman CSE803 Fall 2009 20

Recall different neighborhoods

4-connected: right, up, left, down only 8-connected: have 45 degree diagonals

also If the pixels [r,c] of an image region R are

4-connected, then there exists a path from any pixel [r1,c1] in R to any other pixel [r2,c2] in R using only 4 neighbors

The coloring algorithm is guaranteed to color all connected pixels of a region. Why?

Page 21: Stockman CSE803 Fall 20091 Binary Image Proc: week 2 Getting a binary image Connected components extraction Morphological filtering Extracting numerical

Stockman CSE803 Fall 2009 21

Correctness of recursive coloring

If any pixel P is colored L, then all of its object neighbors must be colored L (because FILL will be recursively called on each neighbor)

If pixels P and Q are in connected region R, then there must be a path from pixel P to Q inside of R.

If FILL does not color Q, let X be the first uncolored pixel on a path from P to Q.

If a neighbor N of X is colored, then so must be X! This contradiction proves the property – all of the path must be colored.

P

Q

XN

P is colored; Q is not; N is colored; X is not. But if N is colored, X must be too!

Pixels P and Q are in a connected region.

Page 22: Stockman CSE803 Fall 20091 Binary Image Proc: week 2 Getting a binary image Connected components extraction Morphological filtering Extracting numerical

Stockman CSE803 Fall 2009 22

Connected components using recursive Paint/Fill

Raster scan until object pixel found Assign new color for new object Search through all connected

neighbors until the entire object is labeled

Return to the raster scan to search for another object pixel

Page 23: Stockman CSE803 Fall 20091 Binary Image Proc: week 2 Getting a binary image Connected components extraction Morphological filtering Extracting numerical

Stockman CSE803 Fall 2009 23

Extracting 5 objects

Page 24: Stockman CSE803 Fall 20091 Binary Image Proc: week 2 Getting a binary image Connected components extraction Morphological filtering Extracting numerical

Stockman CSE803 Fall 2009 24

Outside material to cover Look at C++ functions for raster

scanning and pixel “propagation” Study related fill algorithm Discuss how the recursion works Prove that all pixels connected to

the start pixel must be colored the same

Runtime stack can overflow if region has many pixels.

Page 25: Stockman CSE803 Fall 20091 Binary Image Proc: week 2 Getting a binary image Connected components extraction Morphological filtering Extracting numerical

Stockman CSE803 Fall 2009 25

Alg B: raster scan control

Visit each image pixel once, going by row and then column.

Propagate color to neighbors below and to the right.

Keep track of merging colors.

Page 26: Stockman CSE803 Fall 20091 Binary Image Proc: week 2 Getting a binary image Connected components extraction Morphological filtering Extracting numerical

Stockman CSE803 Fall 2009 26

Have caution in programming

Note how your image tool coordinates the pixels.

Different tools or programming languages handle rows and columns differently

Text uses EE-TV coordinates or standard math coordinates

row

col

Xi

Yi

Page 27: Stockman CSE803 Fall 20091 Binary Image Proc: week 2 Getting a binary image Connected components extraction Morphological filtering Extracting numerical

Stockman CSE803 Fall 2009 27

Raster scanning control

Page 28: Stockman CSE803 Fall 20091 Binary Image Proc: week 2 Getting a binary image Connected components extraction Morphological filtering Extracting numerical

Stockman CSE803 Fall 2009 28

Events controlled by neighbors

If all Ni background, then PP gets new color code

If all Ni same color L, then PP gets L

If Ni != Nj, then take smallest code and “make” all same

See Ch 3.4 of S&S

Processing point

Page 29: Stockman CSE803 Fall 20091 Binary Image Proc: week 2 Getting a binary image Connected components extraction Morphological filtering Extracting numerical

Stockman CSE803 Fall 2009 29

Merging connecting regions

Detect and record merges while raster scanning.

Use equivalence table to recode

(in practice, probably have to start with color = 2, not 1)

Page 30: Stockman CSE803 Fall 20091 Binary Image Proc: week 2 Getting a binary image Connected components extraction Morphological filtering Extracting numerical

Stockman CSE803 Fall 2009 30

alg A versus alg B

Visits pixels more than once

Needs full image Recursion or stacking

slower than B No need to recolor Can compute features

on the fly Can quit if search

object found (tracking?)

“visits” each pixel once

Needs only 2 rows of image at a time

Need to merge colors and region features when regions merge

Typically faster Not suited for

heuristic (smart) start pixel

Page 31: Stockman CSE803 Fall 20091 Binary Image Proc: week 2 Getting a binary image Connected components extraction Morphological filtering Extracting numerical

Stockman CSE803 Fall 2009 31

Outside material More examples of raster scanning Union-find algorithm and parent

table Computing features from labeled

object region More on recursion and C++

Page 32: Stockman CSE803 Fall 20091 Binary Image Proc: week 2 Getting a binary image Connected components extraction Morphological filtering Extracting numerical

Stockman CSE803 Fall 2009 32

Computing features of regions

Can postprocess results of CC alg.

Or, can compute as pixels are aggregated

Page 33: Stockman CSE803 Fall 20091 Binary Image Proc: week 2 Getting a binary image Connected components extraction Morphological filtering Extracting numerical

Stockman CSE803 Fall 2009 33

Area and centroid

Page 34: Stockman CSE803 Fall 20091 Binary Image Proc: week 2 Getting a binary image Connected components extraction Morphological filtering Extracting numerical

Stockman CSE803 Fall 2009 34

Bounding box: BB Smallest rectangle containing all pixels r-low is lowest row value; c-low is

lowest column value r-high, c-high are the highest values Bounding box has diagonal corners [r-

low, c-low] and [r-high, c-high] BBs summarize where an object is;

they can be used to rule out near collisions

Page 35: Stockman CSE803 Fall 20091 Binary Image Proc: week 2 Getting a binary image Connected components extraction Morphological filtering Extracting numerical

Stockman CSE803 Fall 2009 35

Second moments

These are invariant to object location in the image.

Page 36: Stockman CSE803 Fall 20091 Binary Image Proc: week 2 Getting a binary image Connected components extraction Morphological filtering Extracting numerical

Stockman CSE803 Fall 2009 36

Contrast second moments

For the letter ‘I’ Versus the letter ‘O’ Versus the underline

‘_’

r

c

I

Page 37: Stockman CSE803 Fall 20091 Binary Image Proc: week 2 Getting a binary image Connected components extraction Morphological filtering Extracting numerical

Stockman CSE803 Fall 2009 37

Perimeter pixels and length

How do we find these boundary pixels?

Page 38: Stockman CSE803 Fall 20091 Binary Image Proc: week 2 Getting a binary image Connected components extraction Morphological filtering Extracting numerical

Stockman CSE803 Fall 2009 38

Circularity or elongation

Computing P is more trouble than computing A.

Page 39: Stockman CSE803 Fall 20091 Binary Image Proc: week 2 Getting a binary image Connected components extraction Morphological filtering Extracting numerical

Stockman CSE803 Fall 2009 39

Circularity as variance of “radius”

Page 40: Stockman CSE803 Fall 20091 Binary Image Proc: week 2 Getting a binary image Connected components extraction Morphological filtering Extracting numerical

Stockman CSE803 Fall 2009 40

Radial mass transform

• for each radius r, accumulate the mass at distance r from the centroid (rotation and translation invariant)

• can iterate over bounding box and for each pixel, compute a rounded r and increment histogram of mass H[r]

Page 41: Stockman CSE803 Fall 20091 Binary Image Proc: week 2 Getting a binary image Connected components extraction Morphological filtering Extracting numerical

Stockman CSE803 Fall 2009 41

Interest point detection Centroids of regions can be

interesting points for analysis and matching.

What do we do if regions are difficult to extract?

We might transform an image neighborhood into a feature vector, and then classify as “interesting” vs “not”.

Page 42: Stockman CSE803 Fall 20091 Binary Image Proc: week 2 Getting a binary image Connected components extraction Morphological filtering Extracting numerical

Stockman CSE803 Fall 2009 42

Slice of spine MRI and interesting points selected by RMT & SVM

Page 43: Stockman CSE803 Fall 20091 Binary Image Proc: week 2 Getting a binary image Connected components extraction Morphological filtering Extracting numerical

Stockman CSE803 Fall 2009 43

3D microvolumes from Argonne high energy sensor: 1 micron voxels

Ram CAT slice of a bee stinger (left) versus segmented slice (right). Each voxel is about 2 microns per side.

Page 44: Stockman CSE803 Fall 20091 Binary Image Proc: week 2 Getting a binary image Connected components extraction Morphological filtering Extracting numerical

Stockman CSE803 Fall 2009 44

Scanning technique usedCCD camera material sample X-rays

scintillator

Pin head

rotate

X-rays partly absorbed by sample; excite scintillator producing image in the camera; rotate sample a few degrees and produce another image; 3D reconstruction using CT

Page 45: Stockman CSE803 Fall 20091 Binary Image Proc: week 2 Getting a binary image Connected components extraction Morphological filtering Extracting numerical

Stockman CSE803 Fall 2009 45

Different view of stinger

Rendered using ray tracing and pseudo coloring based on the material density clusters that were used to separate object from background. (Data scanned at Argonne National Labs)

Page 46: Stockman CSE803 Fall 20091 Binary Image Proc: week 2 Getting a binary image Connected components extraction Morphological filtering Extracting numerical

Stockman CSE803 Fall 2009 46

Section of interesting points from RMT&SVM

Page 47: Stockman CSE803 Fall 20091 Binary Image Proc: week 2 Getting a binary image Connected components extraction Morphological filtering Extracting numerical

Stockman CSE803 Fall 2009 47

Segmentation of Scutigera

Page 48: Stockman CSE803 Fall 20091 Binary Image Proc: week 2 Getting a binary image Connected components extraction Morphological filtering Extracting numerical

Stockman CSE803 Fall 2009 48

Scutergera: a tiny crustacean

• organism is smaller than

1 mm

• scanned by

• volume segmented and

meshed by Paul Albee

• roughly ten million triangles

to represent the surface

• anaglyph created for 3D

visualization (view with glasses)

Page 49: Stockman CSE803 Fall 20091 Binary Image Proc: week 2 Getting a binary image Connected components extraction Morphological filtering Extracting numerical

Stockman CSE803 Fall 2009 49

Axis of least (most) inertia• gives object oriented, or natural, coordinate system

• passes through centroid

• axis of most inertia is perpendicular to it

• concept extends to 3D and nD

Page 50: Stockman CSE803 Fall 20091 Binary Image Proc: week 2 Getting a binary image Connected components extraction Morphological filtering Extracting numerical

Stockman CSE803 Fall 2009 50

Approach (in Cartesian/math coordinates)

First assume axis goes through centroid Assume axis makes arbitrary angle Θ

with the horizontal axis Write formula for the angular

momentum (inertia) to rotate a single unit of mass (pixel) about the axis

Write formula for the sum over all pixels Take derivative of formula to find Θ for

extreme values

Page 51: Stockman CSE803 Fall 20091 Binary Image Proc: week 2 Getting a binary image Connected components extraction Morphological filtering Extracting numerical

Stockman CSE803 Fall 2009 51

Rotational inertia of pixel

[x,y]

Θ

Θ + 90

d

Centroid of pixels

Axis of

inertia

X

Y

Page 52: Stockman CSE803 Fall 20091 Binary Image Proc: week 2 Getting a binary image Connected components extraction Morphological filtering Extracting numerical

Stockman CSE803 Fall 2009 52

Overall steps d = [x, y] projected along normal to axis = -x sin Θ + y cos Θ Inertia of single pixel is d squared Inertia of entire region is sum over all pixels İ = ∑ ( x sin Θ – y cos Θ)^2 = sin^2 Θ ∑ x^2 – 2sin Θ cos Θ ∑ xy + cos^2 Θ ∑ y^2 = sin^2 Θ a – 2sin Θ cos Θ b + cos^2 Θ c where a, b, c are the second moments!

Page 53: Stockman CSE803 Fall 20091 Binary Image Proc: week 2 Getting a binary image Connected components extraction Morphological filtering Extracting numerical

Stockman CSE803 Fall 2009 53

Final form By differentiating İ with respect to

Θ and setting to 0 0 = a tan 2 Θ -2b – c tan 2 Θ tan 2 Θ = 2b/(a-c) pretty simple What if all pixels [x,y] lie on a

circle? What if they are all on a line?

Page 54: Stockman CSE803 Fall 20091 Binary Image Proc: week 2 Getting a binary image Connected components extraction Morphological filtering Extracting numerical

Stockman CSE803 Fall 2009 54

As in text with centroid

Page 55: Stockman CSE803 Fall 20091 Binary Image Proc: week 2 Getting a binary image Connected components extraction Morphological filtering Extracting numerical

Stockman CSE803 Fall 2009 55

formula for best axis use least squares to derive the

tangent angle of the axis of least inertia

express tan 2 in terms of the 3 second moments

interpret the formula for a circle of pixels and a straight line of pixels