Image processing entails mining of data such as the dimension of a detected tumor and the magnitude of an engineering constituent by interpreting arrays obtained during experimental examination. This is widely applied in biomedical works, in-process quality control in manufacturing industries and advanced engineering applications. An image processing software has been developed. This software offers complete picture processing, examination, algorithm expansion and visualization (González & Woods, 2008, p. 4). Using this software, a technician can boost pictures for enhanced lucidity; re-establish noisy or tainted images, mine image descriptions, evaluate image surface and shapes, and record two images. In this experiment, we are going to study the different types of images that can be obtained and how they can be interpreted. The images that will be focused on in this experiment include binary images, intensity images, index images and RGB images.
Results and Discussion
After examining two images, the following data was obtained;
|Lena Gray||512×512||262144||uint8 array|
|Lena True||512x512x3||786432||uint8 array|
The “Name” column shows the name of every single variable currently using MATLAB. The MATLAB is displaying names of two variables because of the presence of only two images; Lena Gray and Lena True Color Images loaded under the first column.
The second column displays the image size of each variable. Lena Gray image scale is 512×512 pixels in size and it is displayed as a result of “whos” command. It also represents the array storing the pixel information in MATLAB. As for Lena True, color image stored in variables has a different size as compared to that of Lena Gray because the Lena True color image contains Red, Blue and Green intensity information. The Lena True color image is also 512×512 pixels but is three times greater than the its original size in terms of the array storing the information. The reason is that when MATLAB reads a true color (RGB) image it retrieves the information regarding the three intensities above and then keeps these details in different matrices. Therefore, it is a three dimensional array with 512×512 pixels for Red, Green and Blue and hence the 512x512x3 attribute.
The “Bytes” column shows the number of bytes occupied by a specific array. The size of Lena Gray scale image is 512×512 pixels. Because it is an 8bit grayscale image, every pixel has 8bits or 1byte. Therefore, 512x512x1byte=262144bytes. The Lena True color image on the other hand has the same size but holds information about three different color intensities (Red, Green and Blue), each intensity requiring 1byte. Hence 512x512x3x1byte=786432bytes is stored.
The last column indicates the category of respective variables stored in MATLAB. As indicated, both variables consist of “uint8 array” for the images. This implies that the type of matrix and the type of data that is stored in array is unsigned 8bit data or uint8. Every grayscale value in the image or the three intensities are unsigned or are positive integers with levels that range from 0 to 255. Therefore, the data type in the matrix or array is unsigned 8bit. However, if there were grayscale image at 65536 gray levels then MATLAB would store it in unsigned 16bit or uint16 integers. Other types of data used for storing floating point data, uint8 for positive and negative integers between -128 and 127, and binary data types, classes and so on (Burger,2008, p.2).
Indexed images consist of data matrix, X, and colormap array or matrix. The data matrix consists of uint8, uint16, or double. The colormap represents an m-by-3 array of double consisting of floating point values in the [0,1] range. Every row on the map shows the blue, red and green features of every color. For Indexed images, the pixel integers are employed in color mapping the integers. Every color pixel’s color is determined by the corresponding value of X. The value 1 represents the first row in the map, 2 represents the second row and so forth. When imread is working, the indexed images and colormaps that are generally stored together are automatically loaded with images.
An intensity representation or an image is an integer’s matrix, I, in which these values correspond to intensities within a specific range. An intensity image is stored in MATLAB as single matrix. Each matrix element corresponds to 1 image pixel that can be of class uint8, uint16 or double. MATLAB uses colormap to display the intensity of images but they are not saved in colormap. The recorded intensity matrix components correspond to diverse gray levels. Therefore intergers 255 or 65535 generally signifies full or white intensity while black is indicated by integer 0 (Burger, 2008, p. 2).
As for binary representations, only one distinct number of the two is picked by everyone of the pixels. These two discrete values essentially correspond to on and off. Binary images are stored as logical arrays of 0’s (off pixels) and 1’s (on pixels).
The MATLAB stores an RGB or a truecolor image as an m-by-n-by-3 data array or matrix that represents the red, green, and blue color components for every pixel. True color representations never utilize colormap, alternatively the color of every pixel is based on amalgamation of the 3 color intensities amassed in every color plane where each and every pixel is located. The graphics file store truecolor/RGB images as 24bit images whereby each of the red, green, and blue color components are 8bits.
Image Storage Classes Supported by MatLab
Images are stored on disk using imwrite storage classifications tabulated in the following table.
|Image Storage Class||Storage Class of Output Image File|
|Logical||Imwrite generates 1-bit image if output image file arrangement can sustain 1-bit image, if not supported by 1-bit image, uint8 grayscale picture is generate by imwrite.|
|Uint8||Unidentified 8-bit picture file is generated if output picture file arrangement can sustain unidentified 8-bit pictures.|
|uint16||Imwrite generates unknown 16-bit picture file if it can be sustained unknown 16-bit pictures(TIFF or PNG)|
|int16||This relies on file arrangement and therefore is partly supported.|
|Single||This relies on file arrangement and therefore is partly supported|
|Double||Since most file arrangements or formats utilize 8 bits, MATLAB balances the image information to uint8 that is sustained by uint8 output file format.|
In this question we will be using three types of functions to display the output and see the changes from the original photo.
- 1- Imshow
imshow – displays images in scalable graphic window.
- 2- Image
The matrix will be displayed as a photo using this function. It uses the gray level scale of the image, but it does not use the right axis ratio.
- 3- Imtool
It is an open source which proposed to work with SPIRITS and PMO. In addition, it can work with so many common image and data file formats not only these two codes.
- Image Viewer for floating-point pixel values
- False- and True-color displays
- Read in:
- SPIRITS Facet and FPF
- Agema Image
- Combine multiple bands into single true-color image
- Output in standard graphic formats
“Imshow” = this function is to show the image
Imtool = this function used when you want to precisely view the pictures and look at the details.
Image = this function used to display the matrix.
What happen if executing the following program and why?
Rice = imread(‘rice.tif’);
Background = imopen(rice, strel(‘disk’, 15); % Extract the background.
Rice2 = imsubtract(rice, background);
First, we use the following program to adapt and make a correction in the image such as non-uniform ones after that we use the modified image to recognize and concentrate in individual elements.
Rice = imread(‘rice.tif’) = Is simply read the grayscale image using imread function
Background = imopen(rice, strel(‘disk’, 15)) = morphological opening to approximate the background enlightenment using” Imopen”. As in the rice image it is noticeable that there is a difference in illumination between the center of the image and its bottom.
What does this operation do?
With the help of the opening operations, objects can be moved with ease. This is however possible if the structuring element found within the image is not present.
The benefit of calling “strel” function when using imopen to perform the operation is to remove rice that cannot contain the structuring element. This is the main purpose of the function. In addition, there will be a creation of disk-shaped structuring element with a radius of 15.
We can perform the unity of the background, as this function can easily be known from its name “imsubtract” which will simply subtract the background image from the original image.
It is possible to display an output of an image and see the changes that occur in an image with the use of imshow, imtool and image. Each of these tools is essential to ensured that a desirable output is achieved. The imshow shows the image, the imtool diplays the details of an image clearly and the image displays the matrix. This therefore guarantees a desirable overall outcome.
Burger, M. (2008) Digital Image Processing, An Algorithm Introduction using Java. Imagebook. Web.
González, R. & Woods, R. (2008). Digital Image Processing Using MATLAB. Web.