What’s an edge?
Image derivatives
Image derivatives
Laplacian (2nd derivative)!
Laplacians also sensitive to noise
Difference of Gaussian (DoG)
σ = 1
σ = 2
DoGs
Another approach: gradient magnitude
Canny Edge Detection
http://bigwww.epfl.ch/demo/ip/demos/edgeDetector/
Algorithm:
Smooth image
http://bigwww.epfl.ch/demo/ip/demos/edgeDetector/
Gradient magnitude and direction
http://bigwww.epfl.ch/demo/ip/demos/edgeDetector/
Non-maximum suppression
Non-maximum suppression
Non-maximum suppression
http://bigwww.epfl.ch/demo/ip/demos/edgeDetector/
Threshold edges
http://bigwww.epfl.ch/demo/ip/demos/edgeDetector/
Connect ‘em up!
http://bigwww.epfl.ch/demo/ip/demos/edgeDetector/
Canny Edge Detection
http://bigwww.epfl.ch/demo/ip/demos/edgeDetector/
Features!
How to panorama
How close are two patches?
How can we find unique patches?
How can we find unique patches?
How can we find unique patches?
How can we find unique patches?
Self-difference
Sky: low everywhere
Self-difference
Edge: low along edge
Self-difference
Corner: mostly high
Self-difference
Sky: low everywhere
Edge: low along edge
Corner: mostly high
Self-difference is still expensive
Approximate self-difference
Approximate self-difference
Structure matrix
Estimating smallest eigen value
Harris Corner Detector
Ok, we found corners, now what?
Ok, we found corners, now what?
Matching patches: descriptors!
Matching patches: descriptors!
Matching patches: descriptors!
Matching patches: descriptors!
How can we transform images?
How can we transform images?
Say we want new coordinate system
Scaling is just a matrix operation
Translation is harder...
Translation: add another row
Translation: add another row
Reminder, I = Identity
Common to just use I as a generic, whatever size identity fits here.
Translation: add another row
Translation: add another row
Translation: add another row
Euclidean: rotation + translation
Euclidean: rotation + translation
Euclidean: rotation + translation
Euclidean: rotation + translation
Similarity: scale, rotate, translate
Similarity: scale, rotate, translate
Similarity: scale, rotate, translate
Affine: scale, rotate, translate, shear
Affine: scale, rotate, translate, shear
Affine: scale, rotate, translate, shear
General case of 2x3 matrix
Combinations are still affine
Say you want to translate, then rotate, then translate back, then scale.
x’ = S t R t x̄ = M x̄,
If M = (S t R t)
M is still affine transformation
Wait, but these are all 2x3, how to we multiply them together?
Added row to transforms
Projective transform
Need some new coordinates!
Why does this make sense?
Projective transform
Projective transform
Using homography to project point
Lots to choose from
How hard are they to recover?
Lots to choose from
Say we want affine transformation
Say we want affine transformation
Say we want affine transformation
Say we want affine transformation
Say we want affine transformation