Download Completed

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts

Java (programming language) wikipedia , lookup

Dither wikipedia , lookup

C Sharp (programming language) wikipedia , lookup

Java performance wikipedia , lookup

Java ConcurrentMap wikipedia , lookup

Transcript
The ICE Tool Project
EE 3414 Multimedia Communication System I
Polytechnic University
Professor Yao Wang
Team Members:
Feng Wen
Yuan Qi
Kin Wah Leung
Abstract:
ICE tool stands for Image Contrast Enhancement tool. Throughout the course of the
semester various image enhancement techniques had been introduced and studied. With the wide
range of selection of image enhancement techniques, our goal is to create a GUI (graphical user
interface) that could execute the various techniques. Java had been chosen to be the
programming language used for the coding of the GUI because it is easy to implement and
Java is platform independence. With the implementation of the GUI, Matlab is then
integrated with the GUI, which permits the access of the huge image enhancement libraries
offered in Matlab. Major efforts will be to put into the integration of Matlab and the GUI,
and also the creation of the user friendly GUI itself. In addition, the image enhancement
techniques have to be researched so that they could be implemented with the right variations.
The ultimate goal of the project is to create a standalone application that could operate without
the presence of the Matlab and is able to execute image enhancement techniques correctly.
However, due to the limitation in time, the team is only able to create the GUI and integrated it
with MatLab. The ultimate goal is then fall for future development.
Time Table:
The following are the project schedule in detail.
Weeks
Task
Teammate
Status
responsible
1) 2/3 – 2/9
Select Project Topic
Wen& Yuan
Completed
2) 2/10 – 2/16
Project Plan Proposal
Wen
Completed
3) 2/17 – 2/23
Research Image Enhancement Techniques
Whole Team
Completed
4) 2/24 – 3/2
Design Java
GUI & Select Image Whole Team
Completed
Enhancement Methods
5) 3/3 – 3/9
6) 3/10 – 3/16
7) 3/17 – 3/23
Create Java GUI
Leung
Research Matlab linkage methods
Yuan
Create Java GUI (continue)
Leung
Research Matlab linkage methods (cont)
Yuan
Research Matlab functions and library
Wen
Midterm Report
Wen
Create Java GUI (continue)
Leung
Completed
Completed
Completed
Research Matlab linkage methods (cont)
8) 3/24 – 3/30
Yuan
Completed
Research Matlab functions and library Wen
(cont)
9) 3/31 – 4/6
Integration of Matlab & GUI
Leung & Yuan
Completed
Research Matlab functions and library Wen
(cont)
10) 4/7 – 4/13
Integration of Matlab & GUI (continue)
11) 4/14 – 4/20
Implementation of Matlab functions to Whole Team
Leung & Yuan
Completed
Completed
program
12) 4/21 – 4/27
13) 4/28 – 5/4
14) 5/5 – 5/12
Create Power Point presentation
Wen
Final Adjustments
Whole Team
Create Power Point presentation
Wen
Final Adjustments
Whole Team
Final Report
Whole Team
Completed
Completed
Completed
Chart 1-1. (2/9/03- 3/30/03)
Chart 1-2. (3/30/03- 5/11/03)
Accomplishments:
1. Research of Image Enhancement Techniques:
Before the coding of the GUI can take place, some decisions have to be made on which
image enhancement methods the team has to implement. After careful considerations, these
methods were chose for implementation: show histogram, histogram equalization, noise removal
filter including the average filter, median filter, and adaptive filter, image sharpening, and
blurring and deblurring methods which includes Motion blurring, Wiener deblurring, and LucyRichardson deblurring. Due to the scope of the project, there will be no extensive research into
the mathematical calculations for each of the methods. Instead, the research will be focus on the
result and the parameters that these methods depend on to function.
Show Histogram:
Histogram is the indication of the frequency distribution of gray values in the images. In
ICE tool, applying “Show Histogram” will show two images’ histograms, the upper graph shows
the original image and the lower one shows the modified image.
Histogram Equalization:
Instead of trying to adjust the histogram manually, histogram equalization will
automatically calculates the ideal transformation function from the histogram of the image.
Image contrast tends to improve when the frequency distributes evenly over all the gray values.
f
The transformation function can be obtained from this equation: T ( f )   Pf (w)dw . T(f) can be
0
k
k
Nj
j 0
j 0
N
calculated from this relation: g k  T ( f k )   Pf ( f j )  
“Histogram Equalization”, the image will likely be improved.
. In ICE tool, after applying
Average Noise Filtering:
Average noise filtering removes dots and speckles, know as noise, from images by
replacing each pixel with the average of the window area pixels. Average noise filtering has the
effect of smoothing the image. The larger the window size, the more effectively it removes the
noise, but at the expense of blurring the details and edges of the image.
Median Noise Filtering:
Median Noise Filtering replaces each pixel with the median of the window area pixels. It
is especially effectively for removing impulse noise also known as salt and pepper noise. It is
better than average noise filtering at retaining details and edges of the original image.
Adaptive Filtering:
Adaptive Filtering replaces each pixel by the local characteristics of the image. The
properties vary across the image and it is a very complex noise removal filter system.
Wiener Deblurring:
Wiener Deblurring is a generalized inverse filter. It is very effective when information
regarding the frequency characteristics is known, at least to a degree.
Lucy-Richardson Deblurring:
Lucy-Richardson deblurring is very effective when the PSF (point spread function) is
know but little information is available for the noise type.
Sharpening:
Sharpening enhances the appearance of the details and line structures of an image.
Lines structures can be obtain by applying the high-pass filter.
2.Creating the Interactive GUI:
The creation of the interactive GUI started immediately once the image enhancement
methods had been decided upon. Before the programming process can take place another
decision has to be make on the programming language for the GUI. There were a long list of
choices to choose from such as Java, C++, C, basic, or the Matlab programming itself. After
some consideration only Java and C remains on the list and Java was the final decision. Java is
a programming language from Sun Microsystems and it was chosen for several reasons. One
of the most appealing reasons is the fact that Java provides it’s own graphic components in the
packaging. With C, knowledge of Windows programming is required and that alone would take
too much of the time frame available. Another reason is Java’s cross-platform mobility. This is
especially important since all 3 members of the team have to view and adjust the program at one
time or another and all 3 members used different operating systems. The cross-platform mobility
made it possible for all the members to work on the GUI at any computers with Java installed.
It was decided that the GUI should do more than just implementing the image
enhancement techniques. The demos in Matlab implement those same techniques, too, but
without the options to load and save desired images. The save and load options are included in
the file menu of the file menu to make it a fully functional application. Another thing is that the
original and the modified images are displayed on the same panel for easy comparison. Fig. 1-1
shows a snapshot of the ICE.
Figure 1-1.
The original and the modified pictures are identical when a fresh image is loaded. Since no
adjustments had been made to the images thus no differences will occur. With the clicking of the
open icon a text box will appear asking for the file name of the image. The same goes for the
saving process. The image enhancement techniques discussed are all included in the Tools menu
of the GUI. Fig. 1-2 shows the toolbox of the ICE Tool.
Figure 1-2.
Each method is associated with the right buttons and variances on the bottom panel. In the
above view the histogram equalization is only associated with “Histogram Equalization”
activation button. Fig. 1-3 to 1.5 are the views of the other panels for the Noise Reduction
Filtering, Image Blurring and Deblurring, and Image Sharpening.
Figure 1-3.
Figure 1-4.
Figure 1-5.
With the interactive GUI completed the team can move on to integrating it with Matlab.
3.The JMatLink Engine:
In order to link Matlab and Java together, there must be a software engine of some
sort to convert and transfers the code between the two software. Java is a programming
language by itself while Matlab is written in C. The Java Native Interface can be used to write
such an engine linking the two. But after extensive research it was found that the process was not
as easy as once thought. Finally it was decided that ICE tool was to use the JMatLink Engine to
link Matlab and Java together. JMatLink was created by Stefan Muller: http://www.heldmueller.de/JMatLink/. Mr. Muller actually spent over two years just working on this engine and
the course of the semester does not provide that much time frame. JMatLink was created using
native interface in Java, so no actual source code was altered. With JMatLink incorporated with
the GUI, Matlab will be activated automatically once ICE tool starts. One important procedure
has to be completed in order to incorporate JMatLink is that the autoexe.bat file in the compiling
system must set a path to the directory where Matlab and Java are stored.
4.Implementation of the Image Enhancement Techniques:
With the integration problem solved, the last thing to do is to implement the image
enhancement techniques themselves. Research with Matlab coding was required. Each
interactive component in the GUI has to been associated with the correct Matlab code. For
example, in order for the histogram equalization to work that button would need the code: I =
imread(‘abc.jpg’); J = histeq( I ); J is the array of the modified image and will be display on the
modified panel while abc.jpg will be displayed on the original panel. Each and every working
buttons were associated with such Matlab to make them functional.
Conclusion:
The ICE tool project is a successful. The creation of the GUI paved the way for future
advancements. The integration process was more complex than once thought. The main focus of
future advancement will be to implement the image enhancement techniques instead of using
JmatLink and Matlab. Moreover, additional techniques can be implement to ICE tool such as
regularized deblurring. But the scope of ICE tool is to write the GUI and integrated it with
MatLab.
List of References
Gonzalez, Rafael C. and Richard E. Woods. Digital Image Processing (2nd Edition). AddisonWesley Pub Co. 2nd Edition. New York: 2002.
Java 2 Platform, v 1.4.2. API Specification. SunMicroSystem, Inc.
http://java.sun.com/j2se/1.4.2/docs/api/
Matlab 6.0. Learning About Image Processing Toolbox. The MathWorks. Inc.
http://www.mathworks.com/access/helpdesk/help/toolbox/images/images.shtml
Muller, Stefan. JMatLink. http://www.held-mueller.de/JMatLink/