Digital image enhancement techniques are to improving the visual quality of images. Main objective of image enhancement is to process an image so that result is more suitable than original image for specific application. This paper presents real time hardware image enhancement techniques using field programmable gate array (FPGA). This paper focus on implementation of image enhancement algorithms like brightness control, contrast stretching, negative transformation, thresholding, filtering techniques on Fpga that have become a competitive alternative for high performance digital signal processing applications. These algorithms successfully implemented on retinal images in Verilog HDL using Xilinx ISE, MATLAB and MODELSIM. The aim of this paper is to simulate and implement these algorithms using verilog HDL. The device selected here for implementation is (Spartan-3E) from Xilinx.
Keywords |
FPGA, Xilinx ISE, Digital Image Processing, Enhancement, Matlab and Verilog-HDL. |
INTRODUCTION |
Digital image processing plays a vital role in the analysis and interpretation of remotely sensed data. Especially data
obtained from Medical and Satellite Remote Sensing, which is in the digital form, can best be utilized with the help of digital
image processing. Image enhancement and information extraction are two important components of digital image processing.
Image enhancement techniques help in improving the visibility of any portion or feature of the image. |
Image enhancement processes have different techniques to improve the visual appearance of an image. Meanwhile,
the term image enhancement is mean as the improvement of an image appearance by increasing dominance of some features
or by decreasing ambiguity between different regions of the image. Enhancement methods can broadly be divided into
following two categories: |
1. Spatial domain methods |
2. Frequency domain methods |
Spatial domain techniques, directly deal with the image pixels. The pixel values are manipulated to achieve desired
enhancement. In frequency domain methods, the image is first transferred in to frequency domain. It means that, the Fourier
transform of the image is computed first. All the enhancement operations are performed on the Fourier transform of the
image and then the Inverse Fourier transform is performed to get the resultant image. 8-bit digital gray image can have pixel
values in the range of 0 to 255. |
The digital image processing is impacted today in some way with a very large area of technical endeavor. Digital image
processing is used in very large and expanding areas covering applications in multimedia services, arts, medicine, space
exploration, surveillance, authentication, automated industry inspection and many more areas [1].S. Sowmya, et.al, addresses
the implementation of image enhancement algorithms like brightness control, contrast stretching and histogram equalization
on FPGA. The minimum period to the implemented algorithms is 5 ns for an image size 100x100[2].Nitin Sachdeva et.al,
give a design of real time histogram equalization circuit for enhancement of images using FPGA [3]. Varsha S. et.al, explain about hardware implementation of negative transformation, thresholding and contrast stretching using Spartan-3E board. And
the resultant images showed on monitor using vga [4]. Terek m.bittibssi et.al, propose algorithm for different image
enhancement algorithms using FPGA. Like median filter, contrast stretching, histogram equalization, negative image
transformation and power law transformation. All these design algorithms was implemented on cyclone-III fpga based
hardware on a 100x100 size grayscale ‘Lena’ image [5]. Enhancement algorithms using Xilinx system generator (XSG) tool.
In these all paper they explain different image enhancement algorithms using fpga [7] & [8]. Raman maini et.al, proposed an
algorithm for image enhancement [9]. Anthony E et.al, implemented image processing algorithms on fpga hardware [10]. |
Firstly, here image converted to text/coefficient file using MATLAB. This data processed through digital design and
the output processed data is converted to image. Different digital image enhancement algorithms are implemented using
Verilog HDL. Figure1 shows the block diagram for proposed algorithm. |
|
This paper introduces Implementation of image enhancement algorithms include: brightness control, contrast stretching,
negative transformation, thresholding and filtering techniques. One of the example as to why image enhancement is necessary
is that an image might be taken of a retinal fundus image for medical imaging which is important for analyzing and early
detection of diseases related to the eye .Enhancement of such image is necessary to highlight the features for detection of
abnormal eyes. Hence it is widely used in the diagnosis and treatment of various eye diseases Such as diabetic retinopathy,
glaucoma etc. The organization of this paper as follows: Section-III, discusses the theory of the implemented image
enhancement algorithms. Section-IV, introduces hardware realizations for these techniques. Section-V, reports experimental
results. Finally, the conclusion of this paper presented in section VI. |
MATERIALS |
A. Spartan -3E |
The Xilinx XC3S500E Spartan-3E FPGA Starter Kit board supports a variety of FPGA configuration options and their
key Features are 232 user-I/O pins, 320-pin FBGA package, Over10,000 logic cells, Xilinx 4 Mbit Platform Flash
configuration PROM, 64 MByte (512 Mbit) of DDR SDRAM, x16 data interface, 100+ MHz, 16 MByte (128 Mbit) of
parallel NOR Flash (Intel Strata Flash), FPGA configuration storage, 16 Mbits of SPI serial Flash (ST Micro) , FPGA
configuration storage, 2-line, 16-character LCD screen PS/2 mouse or keyboard port, VGA display port,10/100 Ethernet
PHY (requires Ethernet MAC in FPGA), Two 9-pin RS-232 ports (DTE- and DCE-style), On-board USB-based
FPGA/CPLD download/debug interface, 50 MHz clock oscillator, SPI-based Analog-to-Digital Converter (ADC) with
programmable-gain pre-amplifier Chipscop Soft Touch debugging port , Rotary-encoder with push-button shaft, Eight
discrete LEDs , Four slide switches ,Four push-button switches ,SMA clock input, 8-pin DIP socket for auxiliary clock
oscillator. |
B. Xilinx ISE |
The system is implemented using Xilinx ISE 10.1, this is used to synthesize and process the HDL algorithms on fpga.
This paper addresses the implementation of brightness control, contrast stretching, negative transformation, thresholding and
filtering technique for retinal fundus images using Matlab, Model-sim and on FPGA. |
METHODOLOGY |
This section discusses the theory of most commonly used image enhancement algorithms like 1) Brightness Control, 2)
Contrast Stretching, 3) Negative Transformation, 4) Thresholding and 5) Filtering techniques. |
A. Brightness Control |
Brightness control is the process of increasing gray level of each pixel by adding a constant value to the image pixels
with poor brightness. If the digital image is of poor brightness, the objects in the image will not be visible clearly. This is due
to image is captured under low light conditions. To rectify this problem, we can further increase the brightness of the
captured digital image and make the image more attractive. The brightness of a dark image can easily be increased by adding
a constant to gray value of each pixel. This addition operation will shift the histogram towards brighter side with a constant
factor. While applying this method to increase brightness of an image, we must choose the constant wisely so that the
complete range of gray values lies within 0 to 255. If the final gray value of any pixel is greater than 255 then we will lose
the information. |
This algorithm works as follows: |
|
B. Contrast Stretching |
Contrast stretching attempts to improve an image by stretching the range of intensity values it contains to make full use
of possible values. This is stretching is restricted to a linear mapping to a linear mapping of input to output values. If low
contrast image is resulted due to low light conditions, lack of dynamic range of the camera sensor, contrast stretching
operation results in the good quality image. During the contrast stretching operation, we basically increase the dynamic range
of the gray values in the image being processed. A piecewise transformation function is used to achieve contrast stretching.
Contrast stretching algorithm works as follows: |
J(r) = {I(r)-fmin} (max-min/fmax-fmin) + min |
I(r) is the gray level for the input pixel (r) and J(r) is the gray level for the output pixel(r) after the contrast stretching
process. fmax and fmin are the maximum and minimum gray level values in the input image. The max and min are the desired
maximum and minimum gray levels that determine gray level range of the output image. |
C. Negative Transformation |
There are a number of applications in which negative of the digital images are quiet useful. For example, displaying
of medical images and photographing a screen with monochrome positive film with the idea of using the resulting negatives
as normal slides. The negative of the digital image is obtained by using the transformation function: |
J(r) = (L-1)-I(r) |
Where L is the number of gray levels, I(r) is input pixel gray level and J(r) is output transformed gray level. The idea is
to reverse the order from black to white so that the intensity of the output image decreases as the intensity of the input
increases. |
D. Thresholding |
Thresholding an image means transforming all pixels in two values only. This is the special type of quantization
comparing the pixel values with a given threshold value. Thresholding makes output image with only two values that is 0 and
255 for 8bit gray level image. |
|
Resulting of Thresholding image is a black and white image, this have only two gray level values. |
E. Filtering techniques |
The value of a pixel with coordinates (x,y) in the enhanced image J(x,y) is the result of performing some operation on
the pixels in the neighborhood of (x,y) in the input image I(x,y). Neighborhoods can be any shape, usually they are
rectangular. These filtering operations remove the noise in the input image also. |
(i)Image smoothing: The aim of image smoothing is to diminish the effects of camera noise, spurious pixel values, missing
pixel values etc. there are many different techniques for image smoothing. We will consider neighborhood averaging and
edge-preserving smoothing. |
a. Neighborhood averaging (Mean filter): Each pixel in the smoothened image J(x,y) is obtained from the average pixel
value in a neighborhood of (x,y) in the input image. |
For example, 3X3 neighborhood around each pixel we would use the mask: |
|
Here each pixel value is multiplied by 1/9, summed, and the result placed in the output image. This mask is successively
moved across the image until every pixel has been covered. That is the image convolved with this smoothing mask. |
b. Edge preserving smoothing (Median filter): Neighborhood averaging will tend to blur edges because the high
frequencies in the image are attenuated. An alternate approach is to use median filtering. Here we set the gray level to be the
median of the pixel values in the neighborhood of that pixel. For example, suppose the pixel values in a 3X3 neighborhood
are (10, 20, 20, 15, 20, 20, 20, and 25,100). If we sort the values we get (10, 15, 20, 20, |20|, 20, 20, 25,100) and the median
here is 20. |
IMPLEMENTED ALGORITHMS |
Implementations of RTL schematic for Brightness control, Contrast stretching, Negative transformation, Thresholding and
smoothening techniques are explained bellow: |
Figure-2 to Figure-7 shows RTL Schematics for image enhancement algorithms implemented for brightness control,
contrast stretching, and negative transform, thresholding, median, mean algorithms respectively. |
|
|
|
|
|
|
RESULTS |
The hardware based implementation of image enhancement algorithm is carried out on single Spartan-3E family of
fpga. The software development tool used for developing and verifying the design is the Xilinx ISE 10.1 version. The image
size considered for testing is a 100x100 pixel resolution gray level image. The reason for considering a 100x100 resolution
image is because of the limited memory size of fpga. |
Figure-8 to Figure-13 shows MODELSIM simulation results for image enhancement algorithms implemented for
brightness control, contrast stretching, and negative transform, thresholding, median, mean algorithms respectively. Figure-
14 to Figure-20 shows the output images for these algorithms. |
|
|
|
|
|
|
|
|
|
|
|
|
|
CONCLUSION |
This paper implemented for high speed image enhancement applications using fpga. The image enhancement
techniques such as brightness and contrast adjustment are important especially in medical images. This paper explains
implementation of Brightness control, Contrast stretching, Negative transform, Thresholding, Median filtering and Mean
filtering algorithms on fpga. The algorithms were implemented on Spartan-3E fpga development kit. This gives digital
images with good brightness/contrast and it improves quality of images. This techniques used for different applications
depends on requirement and need. These techniques used in digital x-ray, digital mammography, CT scans, MRI etc. The
same image enhancement techniques can be applied to RGB color images instead of gray scale images foe manual and
automatic color correction. |
References |
- R.C.Gonzalez and R.E.Woods, âÃâ¬ÃÅDigital Image ProcessingâÃâ¬ÃÂ, prentice hall, ISBN 0-13-094659, pp. 1-142, 2002.
- S. Sowmya , Roy paily, âÃâ¬ÃÅFpga implementation of image enhancement algorithmsâÃâ¬ÃÂ, International conference communications and signal processing (ICCSP), pp. 584-588, feb. 2011.
- Nitinsachdeva and Tarunsachdeva, âÃâ¬ÃÅAn Fpga based real time histogram equalization circuit for image enhancement,âÃâ¬Ã IJCET vol.1 `, issue 1, December 2010.
- VarshaS.Surwase and S.N.Pawar âÃâ¬ÃÅVlsi implementation of image processing algorithms on fpgaâÃâ¬ÃÂ, IJEEE volume 3, number 3 (2010), pp. 139-145.
- TerekM.Bittibssi, Gouda I.Salama, Yehia Z Mehaseb and Adel E. Henaway âÃâ¬ÃÅImage enhancement algorithms using fpgaâÃâ¬ÃÂ, IJCSRN, vol.2(4), pp.536-542.
- Iluianachiuchisan, Marius cerlinca, Alin-danpotorac, Adraingraur âÃâ¬ÃÅImage enhancement methods approach using verilog hardware description languageâÃâ¬ÃÂ, International conference on development and application systems, suceava,Romania, may 17-19, 2012 pp. 144-148.
- Karan kumar, Adithyajain, and Atulkumarsrivastava âÃâ¬ÃÅFpgaimplemaentation of image enhancement techniquesâÃâ¬ÃÂ, proc. Of spie vol. 7502, 750208 2009.
- Abhishekacharya, Rajesh mehra, VikramsinghTakher âÃâ¬ÃÅFpga based non uniform illumination correction in image processing applicationsâÃâ¬ÃÂ, IJCTA vol. 2(2), 349-358.
- Raman maini and Himanshuaggarwal âÃâ¬ÃÅA Comprehensive review of image enhancement techniquesâÃâ¬ÃÂ, journal of computing, volume2, issue 3, march 2010.
- Anthony E, Nelson, âÃâ¬ÃÅImplementation of image processing algorithms on fpga hardware, Graduate school of Vanderbilt University, May 2000.
- Article on, âÃâ¬ÃÅUsing FPGAs for DSP Image ProcessingâÃâ¬ÃÂ, available at http://www.fpgajournal.com/articles/imaging_hunt.htm.
|