1
|
- Today’s readings
- Cipolla and Gee
- supplemental: Forsyth, chapter
9
- Watt, 10.3-10.4
|
2
|
- Convert a 2D image into a set of curves
- Extracts salient features of the scene
- More compact than pixels
|
3
|
- Edges are caused by a variety of factors
|
4
|
- How can you tell that a pixel is on an edge?
|
5
|
- The gradient of an image:
- The gradient points in the direction of most rapid change in intensity
|
6
|
- 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)
|
7
|
- Better approximations of the derivatives exist
- The Sobel operators below are very commonly used
|
8
|
- Consider a single row or column of the image
- Plotting intensity as a function of position gives a signal
|
9
|
|
10
|
- This saves us one operation:
|
11
|
- Look for zero-crossings of
|
12
|
- is the Laplacian operator:
|
13
|
|
14
|
|
15
|
|
16
|
|
17
|
|
18
|
|
19
|
|
20
|
|
21
|
|
22
|
|
23
|
- Option 1:
- Search for the object at every possible position in the image
- What is the cost of this operation?
- Option 2:
- Use a voting scheme: Hough
transform
|
24
|
- 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
|
25
|
- 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?
|
26
|
- 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?
|
27
|
- 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
- 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)?
|
28
|
- 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)
- 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
|
29
|
- 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)
- 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
|
30
|
- Things to take away from this lecture
- What is an edge and where does it come from
- Edge detection by differentiation
- Image gradients
- continuous and discrete
- filters (e.g., Sobel operator)
- Effects of noise on gradients
- Derivative theorem of convolution
- Derivative of Gaussian (DoG) operator
- Laplacian operator
- Laplacian of Gaussian (LoG)
- Canny edge detector (basic idea)
- Effects of varying sigma parameter
- Approximating an LoG by subtraction
- Hough Transform
|