Edges and Contours Chapter 7 Visual perception We

  • Slides: 36
Download presentation
Edges and Contours– Chapter 7

Edges and Contours– Chapter 7

Visual perception • We don’t need to see all the color detail to recognize

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

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

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

First derivative – continuous f(x) • Slope of the line at a point tangent to the function

First derivative – discrete f(u) • Slope of the line joining two adjacent (to

First derivative – discrete f(u) • Slope of the line joining two adjacent (to the selected point) point u-1 u u+1

Discrete edge detection • Formulated as two partial derivatives – Horizontal gradients yield vertical

Discrete edge detection • Formulated as two partial derivatives – Horizontal gradients yield vertical edges – Vertical gradients yield horizontal edges – 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 •

NOTE • In the following images, only the positive magnitude edges are shown • This is an artifact of Image. J Process->Filters->Convolve… command • Implemented as an edge operator, the code would have to compensate for this

Detecting edges – sharp image Image Vertical Edges Horizontal Edges

Detecting edges – sharp image Image Vertical Edges Horizontal Edges

Detecting edges – blurry image Image Vertical Edges Horizontal Edges

Detecting edges – blurry image Image Vertical Edges Horizontal Edges

The problem… • Localized (small neighborhood) detectors are susceptible to noise

The problem… • Localized (small neighborhood) detectors are susceptible to noise

The solution • Extend the neighborhood covered by the filter – Make the filter

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

Edge operator • The following edge operators produce two results – A “magnitude” edge map (image) – An “orientation” edge map (image)

Prewitt operator • 3 x 3 neighborhood • Equivalent to averaging followed by derivative

Prewitt operator • 3 x 3 neighborhood • Equivalent to averaging followed by derivative – Note that these are convolutions, not matrix multiplications

Prewitt – sharp image

Prewitt – sharp image

Prewitt – blurry image

Prewitt – blurry image

Prewitt – noisy image • Clearly this is not a good solution…what went wrong?

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

Prewitt magnitude and direction

Prewitt magnitude and direction

Sobel operator • 3 x 3 neighborhood • Equivalent to averaging followed by derivative

Sobel operator • 3 x 3 neighborhood • Equivalent to averaging followed by derivative – Note that these are convolutions, not matrix multiplications – Same as Prewitt but the center row/column is weighted heavier

Sobel – sharp image

Sobel – sharp image

Sobel – blurry image

Sobel – blurry image

Sobel – noisy image • Clearly this is not a good solution…what went wrong?

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

Sobel magnitude and direction

Sobel magnitude and direction • Still not good…how could we fix this now? •

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 • Everything else is

Roberts operator • Looks for diagonal gradients rather than horizontal/vertical • Everything else is similar to Prewitt and Sobel operators

Roberts magnitude and direction

Roberts magnitude and direction

Roberts magnitude and direction

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

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 3 x 3 kernel – Theoretically must perform eight convolutions

Kirsch Filter • Eight 3 x 3 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

Kirsch filter kernels Vertical edges L-R diagonal edges Horizontal edges R-L diagonal edges

Kirsch filter kernels Vertical edges L-R diagonal edges Horizontal edges R-L diagonal edges

Kirsch filter

Kirsch filter

Nevatia-Babu Filter • Twelve 5 x 5 kernel – Theoretically must perform twelve convolutions

Nevatia-Babu Filter • Twelve 5 x 5 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

Nevatia-Babu filter