Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
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/