Announcements
|
|
|
|
|
Mailing list: csep576@cs.washington.edu |
|
you should have received
messages |
|
Project 1 out today (due in two
weeks) |
|
Carpools |
Edge Detection
|
|
|
|
Today’s reading |
|
Forsyth, chapters 8, 15.1 |
Edge detection
|
|
|
|
Convert a 2D image into a set
of curves |
|
Extracts salient features of
the scene |
|
More compact than pixels |
Origin of Edges
|
|
|
Edges are caused by a variety
of factors |
Edge detection
|
|
|
How can you tell that a pixel
is on an edge? |
Image gradient
|
|
|
The gradient of an image: |
|
|
|
|
|
The gradient points in the
direction of most rapid change in intensity |
The discrete gradient
|
|
|
How can we differentiate a digital
image F[x,y]? |
The discrete gradient
|
|
|
|
How can we differentiate a digital
image F[x,y]? |
|
Option 1: reconstruct a continuous image, then take
gradient |
|
Option 2: take discrete derivative (finite
difference) |
The Sobel operator
|
|
|
|
Better approximations of the
derivatives exist |
|
The Sobel operators below are
very commonly used |
Effects of noise
|
|
|
|
Consider a single row or column
of the image |
|
Plotting intensity as a
function of position gives a signal |
Solution: smooth first
Derivative theorem of
convolution
|
|
|
This saves us one operation: |
Laplacian of Gaussian
2D edge detection filters
The Canny edge detector
The Canny edge detector
The Canny edge detector
Non-maximum suppression
|
|
|
|
Check if pixel is local maximum
along gradient direction |
|
requires checking interpolated
pixels p and r |
The Canny edge detector
Effect of s (Gaussian kernel spread/size)
Edge detection by
subtraction
Edge detection by
subtraction
Edge detection by
subtraction
Gaussian - image filter
An edge is not a line...
Finding lines in an image
|
|
|
|
Option 1: |
|
Search for the line at every
possible position/orientation |
|
What is the cost of this
operation? |
|
|
|
Option 2: |
|
Use a voting scheme: Hough transform |
Finding lines in an image
|
|
|
|
|
Connection between image (x,y)
and Hough (m,b) spaces |
|
A line in the image corresponds
to a point in Hough space |
|
To go from image space to Hough
space: |
|
given a set of points (x,y),
find all (m,b) such that y = mx + b |
Finding lines in an image
|
|
|
|
|
Connection between image (x,y)
and Hough (m,b) spaces |
|
A line in the image corresponds
to a point in Hough space |
|
To go from image space to Hough
space: |
|
given a set of points (x,y),
find all (m,b) such that y = mx + b |
|
What does a point (x0,
y0) in the image space map to? |
Hough transform algorithm
|
|
|
|
Typically use a different
parameterization |
|
|
|
d is the perpendicular distance
from the line to the origin |
|
q is the angle this perpendicular makes
with the x axis |
|
Why? |
Hough transform algorithm
|
|
|
|
|
|
Typically use a different
parameterization |
|
|
|
d is the perpendicular distance
from the line to the origin |
|
q is the angle this perpendicular makes
with the x axis |
|
Why? |
|
Basic Hough transform algorithm |
|
Initialize H[d, q]=0 |
|
for each edge point I[x,y] in
the image |
|
for q = 0 to 180 |
|
|
|
H[d, q] += 1 |
|
Find the value(s) of (d, q) where H[d, q] is maximum |
|
The detected line in the image
is given by |
|
What’s the running time
(measured in # votes)? |
Extensions
|
|
|
|
|
|
Extension 1: Use the image gradient |
|
same |
|
for each edge point I[x,y] in
the image |
|
compute unique (d, q) based on image gradient
at (x,y) |
|
H[d, q] += 1 |
|
same |
|
same |
|
What’s the running time
measured in votes? |
|
|
|
Extension 2 |
|
give more votes for stronger
edges |
|
Extension 3 |
|
change the sampling of (d, q) to give more/less
resolution |
|
Extension 4 |
|
The same procedure can be used
with circles, squares, or any other shape |
Extensions
|
|
|
|
|
|
Extension 1: Use the image gradient |
|
same |
|
for each edge point I[x,y] in
the image |
|
compute unique (d, q) based on image gradient
at (x,y) |
|
H[d, q] += 1 |
|
same |
|
same |
|
What’s the running time
measured in votes? |
|
|
|
Extension 2 |
|
give more votes for stronger
edges |
|
Extension 3 |
|
change the sampling of (d, q) to give more/less
resolution |
|
Extension 4 |
|
The same procedure can be used
with circles, squares, or any other shape |