2D Gaussian Filter for Image Processing Application on FPGA

Page 1

IJSTE - International Journal of Science Technology & Engineering | Volume 3 | Issue 06 | December 2016 ISSN (online): 2349-784X

2D Gaussian Filter for Image Processing Application on FPGA Tarun Tyagi M. Tech. Student Department of Electronics Engineering Ideal Institute of Technology, Ghaziabad

Vishal Mishra Assistant Professor Department of Electronics Engineering Ideal Institute of Technology, Ghaziabad

Abstract This paper presents implementation of 2D Gaussian filter for image processing. The Gaussian filter is a 2D convolution operator which is used to smooth images and remove noise. The software results are carried out on MATLAB R 2013b while hardware implementation has been written in Verilog HDL. The significance of this filter is realized when it was implemented on FPGA kit. The unit is area and delay optimized on hardware kit. Keywords: Gaussian Filter, FPGA, Image Enhancement, Filtering ________________________________________________________________________________________________________ I.

INTRODUCTION

Nowadays, the concepts of digital image processing are being applied in different fields such as medicine, astronomy, geography, industry, etc. These fields often require results in real-time, and efficiency in the implementation of digital image processing is imperative. In this paper, the authors present the state-of-the-art research on the subject and propose a methodology for implementation of a 2D Gaussian Filter on an FPGA. II. CONVENTIONAL 2D GAUSSIAN FILTER IMPLEMENTATION A gray scale image is represented by a matrix of pixels with values ranging from 0 to 255. In this design we are using a 256 x 256 image for gaussian filtering. For storing image of 256 x 256 size in Block RAM (BRAM) of FPGA, it requires the image to be converted into a vector of 65536 elements. The input to BRAM should be of the format ‘ .coe ’ file. The following are the steps followed for executing the design. 1) Our base image will be lena_256.jpg. Using Matlab, we add gaussian noise to image. The code can be found in adding noise. m. The output image is lena_noise.jpg 2) Second step is convert image to text containing 65536 elements. The code can be found in image2text.m. Input file lena_noise.jpg Output file is lena_gauss256.txt 3) The convert .txt file to. coe file manually. Output file is lena_gauss256.coe 4) Load the lena_gauss256.coe file to BRAM memory using Xilinx Design Suite 5) Here we start the verilog coding Quantized Gaussian kernal =

We will first load the image to img register. Then we do image processing, more precisely Gaussian filtering of image and store the result in img_gauss register. While simulating using Isim, A text file named img_gauss_filter.txt will be generated containing the coefficients of filtered image. The text file can be converted to image by Matlab coding. Use gaussfilter.m file. Gaussian filter will smoothen the image, but it cannot remove the noise. III. MODIFIED 2D GAUSSIAN FILTER IMPLEMENTATION The difference is in step 5. Quantized Gaussian kernal = 1/16 * [0 11 0] Horizontal Quantized Gaussian kernal2 = 1/16 * [0 11 0 ] Vertical We will first load the image to img register. Then we do image processing, more precisely Gaussian filtering of image and store the result in img_gauss register.

All rights reserved by www.ijste.org

96


Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.