0% found this document useful (0 votes)
31 views36 pages

Edge Detection 03

The document discusses various types of image filters and edge detection methods. It begins by introducing linear image filters using discrete convolution. It then discusses nonlinear filters like median filters and morphological filters. The document focuses on different edge detection methods like Roberts, Prewitt, Sobel, Kirsch, and Robinson operators which use convolution masks to approximate derivatives. It also discusses the Laplacian operator which provides edge magnitude without orientation. The document provides examples of convolution masks used by different edge detection methods and their significance.

Uploaded by

Tekalign Tadesse
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
31 views36 pages

Edge Detection 03

The document discusses various types of image filters and edge detection methods. It begins by introducing linear image filters using discrete convolution. It then discusses nonlinear filters like median filters and morphological filters. The document focuses on different edge detection methods like Roberts, Prewitt, Sobel, Kirsch, and Robinson operators which use convolution masks to approximate derivatives. It also discusses the Laplacian operator which provides edge magnitude without orientation. The document provides examples of convolution masks used by different edge detection methods and their significance.

Uploaded by

Tekalign Tadesse
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 36

Sliding Window Filters and

Edge Detection

Longin Jan Latecki


Computer Graphics and Image Processing
CIS 601 – Fall 2003
Linear Image Filters
Linear operations calculate the resulting value in the output
image pixel f(i,j) as a linear combination of brightness in a
local neighborhood of the pixel h(i,j) in the input image.
This equation is called to discrete convolution:

a b
f (i, j )  w * h    w(m, n)h(i  m, j  n)
m a nb

Function w is called a convolution kernel or a filter mask. In


our case it is a rectangle of size (2a+1)x(2b+1).
Exercise: Compute the 2-D linear convolution of
the following two signal X with mask w.
Extend the signal X with 0’s where needed.

1 2 3
X  4 5 6, w   1 0 1
3 4 1
Image smoothing = image blurring
Averaging of brightness values is a special case of discrete
convolution. For a 3 x 3 neighborhood the convolution mask w is

1 1 1
1
w  1 1 1
9
1 1 1
Applying this mask to an image results in smoothing.

Matlab example program is filterEx1.m

•Local image smoothing can effectively eliminate impulsive noise


or degradations appearing as thin stripes, but does not work if
degradations are large blobs or thick stripes.
The significance of the central pixel may be increased to
better reflect properties of Gaussian noise:

1 1 1 1 2 1 
1 
1 
w  1 2 1 w  2 4 2
10 16
1 1 1 1 2 1 
Nonlinear Image Filters

I1  I 2  I 3  ...  I N 2
Median is an order filter, it uses order statistics.
Given an NxN window W(x,y) with pixel (x,y) being the
midpoint of W, the pixel intensity values of pixels in W
are ordered from smallest to the largest, as follow:
Median filter selects the middle value as the value of (x,y).

110 110 104


W ( x, y )  100 114 104  Median(W ( x, y ))  104
 95 88 85 
Morphological Filters

dilation(W ( x, y ))  max(W ( x, y ))
erosion (W ( x, y ))  min(W ( x, y ))
opening  dilation  erosion
clo sin g  erosion  dilation

110 110 104


W ( x, y )  100 114 104  dilation(W ( x, y ))  114
 95 88 85 
For comparison see Order Filters on

www.ee.siue.edu/~cvip/CVIPtools_demos/mainframe.shtml

Homework

Implement in Matlab a linear filter for image smoothing (blurring)


using convolution method (filter2 function).
Implement alos nonlinear filters: median, opening, and closing
(simply using two for loops).
Apply them to images noise_1.gif, noise_2.gif in
www.cis.temple.edu/~latecki/CIS601-03\Lectures\Matlab\Images
Compare the results.
Edge Detection

• What are edges in an image?


• Edge Detection
• Edge Detection Methods
• Edge Operators
• Matlab Program
• Performance
What are edges in an image?

 Edges are those places


in an image that
correspond to object
boundaries.
 Edges are pixels where
image brightness
changes abruptly.
Brightness vs. Spatial Coordinates
More About Edges

 An edge is a property attached to an


individual pixel and is calculated from the
image function behavior in a neighborhood
of the pixel.
 It is a vector variable (magnitude of the
gradient, direction of an edge) .
Image To Edge Map
Edge Detection

 Edge information in an image is found by looking


at the relationship a pixel has with its
neighborhoods.
 If a pixel’s gray-level value is similar to those
around it, there is probably not an edge at that
point.
 If a pixel’s has neighbors with widely varying gray
levels, it may present an edge point.
Edge Detection Methods

 Many are implemented with convolution


mask and based on discrete approximations
to differential operators.
 Differential operations measure the rate of
change in the image brightness function.
 Some operators return orientation
information. Other only return information
about the existence of an edge at each point.
A 2D grayvalue - image is
a 2D -> 1D function

v = f(x,y)
Edge detectors
•locate sharp changes in the intensity function
•edges are pixels where brightness changes abruptly.

•Calculus describes changes of continuous functions using


derivatives; an image function depends on two variables -
partial derivatives.
•A change of the image function can be described by a gradient
that points in the direction of the largest growth of the image
function.
•An edge is a property attached to an individual pixel and is
calculated from the image function behavior in a neighborhood
of the pixel.
•It is a vector variable:
magnitude of the gradient and direction
•The gradient direction gives the direction of maximal growth
of the function, e.g., from black (f(i,j)=0) to white (f(i,j)=255).

•This is illustrated below; closed lines are lines of the same


brightness.
•Boundary and its parts (edges) are perpendicular to the
direction of the gradient.
•The gradient magnitude and gradient direction are continuous
image functions, where arg(x,y) is the angle (in radians) from the
x-axis to the point (x,y).
•A digital image is discrete in nature, derivatives must be
approximated by differences.
•The first differences of the image g in the vertical
direction (for fixed i) and in the horizontal direction (for
fixed j)
•n is a small integer, usually 1.

The value n should be chosen small enough to provide a good


approximation to the derivative, but large enough to neglect
unimportant changes in the image function.
Roberts Operator

 Mark edge point only


 No information about edge orientation
 Work best with binary images
 Primary disadvantage:
 High sensitivity to noise
 Few pixels are used to approximate the gradient
Roberts Operator (Cont.)

 First form of Roberts Operator


I (r , c)  I (r  1, c  1)  I (r , c  1)  I (r  1, c)
2 2

 Second form of Roberts Operator


| I (r , c)  I (r  1, c  1) |  | I (r , c  1)  I (r  1, c) |
1 0   0 1
h1    h2   
 0  1   1 0 
Prewitt Operator

 Looks for edges in both horizontal and


vertical directions, then combine the
information into a single metric.
 1  1  1  1 0 1
y   0 0 0  x   1 0 1
 1 1 1   1 0 1

x2  y2 1 y
Edge Magnitude = Edge Direction = tan  
x
Sobel Operator

 Similar to the Prewitt, with different mask


coefficients:
 1  2  1   1 0 1
y   0 0 0  x   2 0 2
 1 2 1    1 0 1 

 y
1
Edge Magnitude = x y
2 2
Edge Direction =tan  x 
Kirsch Compass Masks

 Taking a single mask and rotating it to 8


major compass orientations: N, NW, W, SW,
S, SE, E, and NE.
 The edge magnitude = The maximum value
found by the convolution of each mask with
the image.
 The edge direction is defined by the mask
that produces the maximum magnitude.
Kirsch Compass Masks (Cont.)

 The Kirsch masks are defined as follows:


 3  3 5  3 5 5 5 5 5 5 5  3
N   3 0 5 W   3 0 5  S   3 0  3 E   5 0  3
 3  3 5  3  3  3  3  3  3  3  3  3

5  3  3  3  3  3  3  3  3  3  3 5
NW  5 0  3SW   5 0  3SE   3 0  3 NE   3 0 5
5  3  3  5 5  3  5 5 5   3 5 5

 EX: If NE produces the maximum value, then the edge


direction is Northeast
Robinson Compass Masks

 Similar to the Kirsch masks, with mask


coefficients of 0, 1, and 2:
  1 0 1 0 1 2 1 2 1 2 1 0
N   2 0 2 W    1 0 1 S   0 0 0  E  1 0  1
  1 0 1  2  1 0  1  2  1 0  1  2

1 0  1  0  1  2  1  2  1  2  1 0
NW  2 0  2 SW  1 0  1 SE   0 0 0  NE    1 0 1 
1 0  1  2 1 0   1 2 1   0 1 2
•Sometimes we are interested only in edge magnitudes without
regard to their orientations.
•The Laplacian may be used.

•The Laplacian has the same properties in all directions and is


therefore invariant to rotation in the image.

•The Laplace operator is a very popular operator


approximating the second derivative which gives the
gradient magnitude only.
Laplacian Operators

 Edge magnitude is approximated in digital


images by a convolution sum.
 The sign of the result (+ or -) from two
adjacent pixels provide edge orientation and
tells us which side of edge brighter
Laplacian Operators (Cont.)

 Masks for 4 and 8 neighborhoods


 0 1 0   1  1  1
 1 4  1  1 8  1
   
 0  1 0   1  1  1

 Mask with stressed significance of the


central pixel or its neighborhood
 1 2 1    2 1  2
  2 4  2 1 4 1
   
 1  2 1   2 1  2
Performance

 Please try the following link Matlab demo.


To run type EDgui
 Sobel and Prewitt methods are very effectively
providing good edge maps.
 Kirsch and Robinson methods require more time
for calculation and their results are not better than
the ones produced by Sobel and Prewitt methods.
 Roberts and Laplacian methods are not very good
as expected.
•Gradient operators can be divided into three categories

I. Operators approximating derivatives of the image function using


differences.
•rotationally invariant (e.g., Laplacian) need one convolution mask
only. Individual gradient operators that examine small local
neighborhoods are in fact convolutions and can be expressed by
convolution masks.

•approximating first derivatives use several masks, the orientation is


estimated on the basis of the best matching of several simple
patterns. Operators which are able to detect edge direction. Each
mask corresponds to a certain direction.
II. Operators based on the zero crossings of the image function
second derivative (e.g., Marr-Hildreth or Canny edge detector).

III. Operators which attempt to match an image function to a


parametric model of edges. Parametric models describe edges more
precisely than simple edge magnitude and direction and are much
more computationally intensive.

The categories II and III will not be covered here;


A Quick Note

 Matlab’s image processing toolbox provides edge


function to find edges in an image:
I = imread('rice.tif');
BW1 = edge(I,'prewitt');
BW2 = edge(I,'canny');
imshow(BW1)
figure, imshow(BW2)
 Edge function supports six different edge-finding
methods: Sobel, Prewitt, Roberts, Laplacian of
Gaussian, Zero-cross, and Canny.
Homework:
Edge Map in Matlab
 Select an example image.
 Which of the six edge detection method
provided by Matlab works best for you.
 Show the result of edge map

You might also like