This preview shows pages 1–2. Sign up to view the full content.
This preview has intentionally blurred sections. Sign up to view the full version.
View Full Document
Unformatted text preview: INTRODUCTION Image processing is one of the main applications to tap the maximum parallelism out of FPGA as compared to a microprocessor. Thus in order to test the speedup that can be achieved out of an FPGA as compared to microprocessor, we plan to implement Sobel Edge Detection technique used for detecting edges of an image. Edge detection plays very important role in various applications which requires extraction of structural features of an image for further processing or to eliminate less relevant data for data compression. In the ideal case, the result of applying an edge detector to an image may lead to a set of connected curves that indicate the boundaries of objects, the boundaries of surface markings as well as the curves that correspond to the discontinuities in surface orientation. Thus applying an edge detector to an image may significantly reduce the amount of data to be processed and may therefore filter out information that may be regarded as less relevant, while preserving the important structural properties of an image. There are many ways to perform edge detection. Most of the methods may be grouped into two categories, gradient and Laplacian based techniques. The gradient method detects the edges by looking for the maximum and minimum in the first derivative of the image. Roberts, Prewitt and Sobel are common gradient techniques. The Laplacian method searches for zerocrossings in the second derivative of the image to find edges. The well known Laplacian technique is Marrs Hildreth algorithm. For our project we are implementing Sobel edge detection algorithm. This method is computationally intensive due to large size of images and involves overlap of data values in consequent iterations thus making it a good candidate for implementation on a reconfigurable fabric such as an FPGA. ALGORITHM To perform most image processing techniques, we convolve the image with a filter mask. As shown in the Fig. 1, a mask W operates on a pixel value p 5 located at ( x, y ) of an image and its neighboring pixels { p 1 , p 2 , p 3 , p 4 , p 6 , p 7 , p 8 , p 9 } and gives an output pixel q ( x, y ) given by q ( x, y ) = ∑ 3 i =1 w i ∗ p i which is stored in an output image at location ( x, y ). Sobel edge detector uses a simple convolution kernel to create a series of gradient magnitudes. A gradient in x direction means a vertical edge is present and gradient in y direction means a horizontal edge is present. There are two kernels, one for the vertical contrast ( G x ) and one for the horizontal contrast ( G y ) as shown in Fig. 2. The output pixel value at the location ( x, y ) for mask G x is given by q x ( x, y ) = ( p 3 − p 1 ) + 2( p 6 − p 4 ) + ( p 9 − p 7 ) and for mask G y is given by q y ( x, y ) = ( p 1 − p 7 ) + 2( p 2 − p 8 ) + ( p 3 − p 9 ). The output data can be represented as a gradient vector q = µ q x q y ¶ with magnitude and orientation given by q = p q 2 x + q 2 y and θ = tan − 1 { q y q x } . In our implementation we approximate the magnitude....
View
Full
Document
This note was uploaded on 03/27/2012 for the course EEL 4930 taught by Professor Staff during the Spring '08 term at University of Florida.
 Spring '08
 Staff
 Microprocessor

Click to edit the document details