Title: Edges and Contours
1Edges and Contours Chapter 7
2Visual perception
- We dont 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
3Visual perception
- Sometimes we see things that are not really
there!!!
Kanizsa Triangle (and variants)
4Edges
- 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
5First derivative continuous f(x)
- Slope of the line at a point tangent to the
function
6First derivative discrete f(u)
- Slope of the line joining two adjacent (to the
selected point) point
7Discrete 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
8NOTE
- In the following images, only the positive
magnitude edges are shown - This is an artifact of ImageJ
- Process-gtFilters-gtConvolve command
- Implemented as an edge operator, the code would
have to compensate for this
9Detecting edges sharp image
10Detecting edges blurry image
11The problem
- Localized (small neighborhood) detectors are
susceptible to noise
12The 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
13Edge operator
- The following edge operators produce two results
- A magnitude edge map (image)
- An orientation edge map (image)
14Prewitt operator
- 3x3 neighborhood
- Equivalent to averaging followed by derivative
- Note that these are convolutions, not matrix
multiplications
15Prewitt sharp image
16Prewitt blurry image
17Prewitt noisy image
- Clearly this is not a good solutionwhat went
wrong? - The smoothing just smeared out the noise
- How could you fix it?
- Perform non-linear noise removal first
18Prewitt magnitude and direction
19Prewitt magnitude and direction
20Sobel operator
- 3x3 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
21Sobel sharp image
22Sobel blurry image
23Sobel noisy image
- Clearly this is not a good solutionwhat went
wrong? - The smoothing just smeared out the noise
- How could you fix it?
- Perform non-linear noise removal first
24Sobel magnitude and direction
25Sobel magnitude and direction
26Sobel magnitude and direction
- Still not goodhow 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
27Roberts operator
- Looks for diagonal gradients rather than
horizontal/vertical - Everything else is similar to Prewitt and Sobel
operators
28Roberts magnitude and direction
29Roberts magnitude and direction
30Roberts magnitude and direction
31Compass 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
32Kirsch 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
33Kirsch filter kernels
34Kirsch filter
35Nevatia-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
36Nevatia-Babu filter