Transcript Edge Detection
Edges and Contours– Chapter 7
Visual perception
• We don’t need to see all the color detail to recognize the scene content of an image • That is, some data provides critical information for recognition, other data provides information that just makes things look “good”
Visual perception
• Sometimes we see things that are not really there!!!
Kanizsa Triangle (and variants)
Edges
• Edges (single points) and contours (chains of edges) play a dominant role in (various) biological vision systems – Edges are spatial positions in the image where the intensity changes along some orientation (direction) – The larger the change in intensity, the stronger the edge – Basis of edge detection is the first derivative of the image intensity “function”
First derivative – continuous f(x)
• Slope of the line at a point tangent to the function
f
' (
x
)
df dx
(
x
)
First derivative – discrete f(u)
• Slope of the line joining two adjacent (to the selected point) point
f
' (
u
)
f
(
u
1 )
f
(
u
1 ) 2
u-1 u u+1
Discrete edge detection
• Formulated as two partial derivatives – Horizontal gradients yield vertical edges
I
u
(
u
,
v
) – Vertical gradients yield horizontal edges
I
v
(
u
,
v
) – Upon detection we can learn the magnitude (strength) and orientation of the edge • More in a minute…
NOTE
• In the following images, only the positive magnitude edges are shown • This is an artifact of ImageJ Process->Filters >Convolve… command • Implemented as an edge operator, the code would have to compensate for this
Detecting edges – sharp image
Image Vertical 0 .
5 Edges 0 .
0 0 .
5 Horizontal Edges 0 0 0 .
.
.
0 5 5
Detecting edges – blurry image
Image Vertical 0 .
5 Edges 0 .
0 0 .
5 Horizontal Edges 0 0 0 .
.
.
0 5 5
The problem…
• Localized (small neighborhood) detectors are susceptible to noise
The solution
• Extend the neighborhood covered by the filter – Make the filter 2 dimensional • Perform a smoothing step prior to the derivative – Since the operators are linear filters, we can combine the smoothing and derivative operations into a single convolution
Edge operator
• The following edge operators produce two results – A “magnitude” edge map (image)
E
(
u
,
v
)
D x
(
u
,
v
) 2
D y
(
u
,
v
) 2 – An “orientation” edge map (image) (
u
,
v
) tan 1
D y
(
u
,
v
)
D x
(
u
,
v
)
Prewitt operator
• 3x3 neighborhood
H P x
1 1 1 0 0 0 1 1 1
H P y
0 1 1 1 0 1 0 1 1 • Equivalent to averaging followed by derivative – Note that these are convolutions, not matrix multiplications
H P y
1 1 1 1 0 1
H y P
1 1 1 0 1 1
Prewitt – sharp image
Prewitt – blurry image
Prewitt – noisy image
• Clearly this is not a good solution…what went wrong?
– The smoothing just smeared out the noise • How could you fix it?
– Perform non-linear noise removal first
Prewitt magnitude and direction
Prewitt magnitude and direction
Sobel operator
• 3x3 neighborhood
H P x
1 2 1 0 0 0 1 2 1
H P y
0 1 1 0 2 2 0 1 1 • Equivalent to averaging followed by derivative – Note that these are convolutions, not matrix multiplications
H P y
1 2 1 1 0 1
H P y
1 2 1 0 1 1 – Same as Prewitt but the center row/column is weighted heavier
Sobel – sharp image
Sobel – blurry image
Sobel – noisy image
• Clearly this is not a good solution…what went wrong?
– The smoothing just smeared out the noise • How could you fix it?
– Perform non-linear noise removal first
Sobel magnitude and direction
Sobel magnitude and direction
Sobel magnitude and direction
• Still not good…how could we fix this now? • Using the information of the direction (lots of randomly oriented, non-homogeneous directions) can help to eliminate edged due to noise – This is a “higher level” (intelligent) function
Roberts operator
• Looks for diagonal gradients rather than horizontal/vertical
H R
1 0 1 1 0
H R
2 0 1 0 1 • Everything else is similar to Prewitt and Sobel operators
Roberts magnitude and direction
Roberts magnitude and direction
Roberts magnitude and direction
Compass operators
• An alternative to computing edge orientation as an estimate derived from two oriented filters (horizontal and vertical) • Compass operators employ multiple oriented filters • To most famous are – Kirsch – Nevatia-Babu
Kirsch Filter
• Eight 3x3 kernel – Theoretically must perform eight convolutions – Realistically, only compute four convolutions, the other four are merely sign changes • The kernel that produces the maximum response is deemed the winner – Choose its magnitude – Choose its direction
0 1 2 1 0 1 2 1 2 1
Kirsch filter kernels
0 0 1 2 0 1 1 0 1 2 1 0 0 0 1 2 1 Vertical edges 0 1 2 2 1 0 1 0 1 0 1 2 L-R diagonal edges 1 0 2 0 2 1 0 1 1 0 1 2 0 2 1 0 1 Horizontal edges 1 0 1 2 1 0 0 1 2 1 0 1 2 1 0 R-L diagonal edges
Kirsch filter
Nevatia-Babu Filter
• Twelve 5x5 kernel – Theoretically must perform twelve convolutions – Increments of approximately 30 ° – Realistically, only compute six convolutions, the other six are merely sign changes • The kernel that produces the maximum response is deemed the winner – Choose its magnitude – Choose its direction
Nevatia-Babu filter