Introduction
FUZ application was developed to support research in image fusion achieved using the fuzzy transform. The theory and description of this application is already briefly described in Applications section. The FUZ application implements algorithms described there to process image fusion over a set of images. The tool is developed for .NET Framework 2.0 and Windows operating system.
The fuzzy transform is implemented via C++ language and is used as internal part of the whole software. It contains set of methods offering an interface to process the forward and inverse fuzzy transform over the set (that means array) of values.
The .NET framework application is responsible for graphical user interface and high-level operations with images (e.g. image loading, analysis and reconstruction set of pixels/components and so on). Analysed image (represented by set(s) of pixels) are passed as arguments into the C++ library; returned value is taken and result image is constructed. It also computes all characteristics about the process.
The main purpose of the application is to process designed algorithms over real images, analyse its behavior and properties. Some of improvements in the origin algorithm has been made and they have been tested using this tool.
Main principles
The usage of the tool is as follows. It takes a set of images in a known image format (GMP, JPG and PNG formats are now supported) and analyses them using the direct and inverse fuzzy transform. The result of this analyze is used to create final, fused image. There is an important restriction over the source set of images. All images have to capture the same scene. Images cannot differ in some part of the scene (e.g. moving object which changed its position) and the target area must stay the same over all images (that means the camera cannot move between shots and image scene position cannot differs from each other). This restriction are quite strong requirement placed over an input set of the images - it means, that the images (or photos) have to catch the same location with no change, except change of the focus of the camera.
Reconstructed image can be saved into file using common image format BMP.
The application works with grayscaled images, where only level of gray is used as an source, but also with color images, where standard R-G-B model is used and each color component is analysed separately.
A brief description of the application principle is can be described as follows:
- First, all of source images are taken and transformed into arrays of bytes representing pixels;
- Over every image, forward and inverse function is calculated. At first iteration over this step the number of components to describe whole image is 2 (this can be set by parameter). Result is saved for future.
- Step 2 is iterated, until the original and reconstructed images are similar enough (this is set by parameter). The number of components is doubled every iteration.
- The next iteration is made over calculated results in step 2 and the highest components are found.
- Those components are used to reconstruct fused image.
The real implementation differs a bit from the formalised one due to memory amount. The algorithm was revised to spend less computer memory, nevertheless the amount of consumed memory is still high, especially for large images. (The application during analysis informs user about used memory.)
The example below shows set of two source images used as inputs of the fusion process:
And the result of their fusion is:
Program usage
The program have not to be installed, it can be just copied into target location with all files from the package. The program requires installed Microsoft .NET Framework 2.0 Redistributable package (free download from Microsoft pages) or whole Microsoft .NET Framework 2.0.
After execution, the program shows the main program file, which consists of three basic tabs:
-
Source - this tab show info listbox containing selected images to fusion. Images are shown in preview after selection. User can add new images using button "Add", remove currently selected images from the listbox using button "Delete" or clear the whole content of the listbox using "Clear" button.
-
Process - this tab contains main parameter selection, and option to start/stop fusion using "Start fusion" or "Stop fusion" buttons. There are four main parameters to set: "Max error value" defines how much can be the difference between source and reconstructed image (in step 2) to be accepted as the same and leave the iteration. It must be positive number greater than zero. Parameter "start K value" defines how much components will be used at the first iteration over the step 2. Parameter "Multiplier" specifies how fast will raise a number of components created in step 2. Generally, the number of the components is calculated as (power(multiplier, start_K_value)) for the first iteration, for each following iteration is start_K_value parameter increased by 1. The rest of the window shows the information about fusion process.
-
Result - this tab show the fused image after the fusion. The image can be saved using "Save result" button.
Related links:
Research reports
[1] Research report 122. Irina Perfilieva, Martina Daňková: Image Fusion on the Basis of Fuzzy Transforms, 2004. Download Report 122.
[2] Research report 108. Martina Daňková, Radek Valášek: Full fuzzy transform and the problem of image fusion, 2006. Download Report 108.