watermarking- image enhancement- noise removal

Page 1

EE 569- Fall’08

Project-1 Visible watermarking technologies; Image enhancement; Noise Removal 19th September ’2008

Submitted by: NEHA RATHORE ID -5994499980

NEHA RATHORE |ID- 5994499980

1


Problem 1 Gray Scale Images and Visible Watermarking Technologies Objective We need to convert a RGB image to a grayscale image. Furthermore, we need to implement a visible watermarking technique for Donheny.raw file. We have to watermark the color and grayscale images of donehy.raw with color and gray scale USC logos, respectively. Motivation Color images are converted to grayscale images for several reasons. For example, in data compression techniques a gray scale image is helpful as it provides the information in 1byte per pixel, as opposed to the color image that carries 3 bytes per pixel. There are various techniques available to convert a color image into a grayscale image. However, most of the techniques result in a fattened image that lacks the digital vibrance of the original color image. As one is aware, a color image is comprised of three primary colors namely; red, green and blue. Different combinations of these colors produce variable output colors. On the otherhand, a grayscale image is comprised primarily of the luminance and chrominance. To convert a color image into a grayscale image that presents same kind of image depth we need to calculate the luminance of the image at each pixel. As we were provide with an image in RAW format1 we were able to process data efficiently in a pixel by pixel basis. The First step was to extract the RGB values from the image. Being able to see an image in discreet domain in the form of numbers was very fascinating. To know how few numbers arranged in a certain way can produce magic to the human eyes. In practical application, sometimes these RGB channels are separately used for transmitting information. Devices like, R,G,B filters make it possible to transmit data in a encoded manner. Digital watermarking is a process of embedded a digital signature in an image. The signal may be audio, pictures or video, for example. If the signal is copied, then the information is also carried in the copy.In visible watermarking, the information is visible in the picture or video. Typically, the information is text or a logo which identifies the owner of the media. When a television broadcaster adds its logo to the corner of transmitted video, this is also a visible watermark.2 The other form of water marking is the invisible water marking. In this form, the logo is embedded in the image in an invisible manner. This is an efficient way of preventing unauthorized use of digital media.

1

Raw Format: A raw image file contains minimally processed data from the image sensor of a digital camera or image scanner. Image can processed for precise adjustments can be made before conversion to an RGB file format such as TIFF or JPEG for storage, printing, or further manipulation.

2

Wikipedia: http://en.wikipedia.org/wiki/Digital_watermarking

EE 569- Fall’08 | ID- 5994499980

2


Procedure Problem 1.1- Color to Gray-Scale conversion: In gray-scale image , each pixel has the value of only one component to record its brightness. This component is called the luminance of the pixel and is often denoted as “Y”. In a RGB color image, each pixel has the value of three color components (red, green and blue) to record the combined color of the pixel. The brightness of the pixel is calculated in the following way:

Y = 0.299xR + 0.587xG + 0.114xB Where, R, G, B values are the corresponding red, green and blue value for the pixel. INPUT IMAGE

FIG: 1.1

OUTPUT IMAGE

FIG 1.2

Procedure and algorithm: As I am implementing this technology in C++, I stored the Input image in a 3D array called imagedata [256][256][3]. This Array stores the three bytes of RGB respectively in the three location of the array and stores the location of the pixel in the first two bytes. This made the processing the image much easier as the Red pixels were stored in the imagedata[x][y][0] location, Green pixels were stored in the imagedata[x][y][0] location and blue pixels were stored in the imagedata[x][y][2] location. Each pixel of R was multiplied by a factor of (0.299), each pixel of G was multiplied by a factor of (0.587) and each pixel of B was multiplies by a factor of (0.114). Finally, these three scaled values were added together to give the total brightness of the particular pixel. Furthermore, I calculated the brightness of each pixel using the above formula for “Y” and stored this value in a new 3-D array called Imagedata1[x][y][0] which is an array of size 256*256*1. Hence an image of 3 bytes of RGB values is converted to an image of 1byte of grayscale. As we are calculating the EE 569- Fall’08 | ID- 5994499980

3


brightness of each pixel, we preserve the digital vibrance of the image as we convert the image from RGB to gray scale. Hence, we were able to convert the desired image to the grayscale maintaining its digital vibrance at the same time. The gray scale image seems to be good and sharp. Problem 1.2- Embedding Watermarks into Original Image Digital watermarking is the process of embedding information into a digital signal called the host. The host signal can be audio, pictures or video. In visible watermarking, the information is visible in the picture or video. Typically, this information is a logo that identifies the owner of the media. This technology helps prevent the unauthorized use of a copyright material. Objective: We need to implement a program that embeds the color USC logo in the Center position of color image. This image is given to us as Donehy.raw. We also need to implement a program to embed the gray scale USC logo in the center position of the gray scale image obtained in part 1 of the problem. Images to be embedded

USC Color Logo

USC Gray Logo

Figures :1.3,1.4,1.5,1.6 (clockwise)

Procedure and analysis Watermarking the USC logo in the Doheny image.

EE 569- Fall’08 | ID- 5994499980

4


As we were given the USC logo in a 128x128 size as opposed to the 256x256 size of the image it was crucial to choose the parameters to overwrite the pixels of the original image. I divided the image in a xy coordinate system with values of x & y belonging to a range [0,255]. This makes the first pixel of the image at (1,1) location and last pixel the location (255,255). I further tried matching the centers of the images. This implies that the pixel at (63,63) in the logo image had to be matched with the pixel at (128,128) in the Doheny image. In my imagedata array I ranged the values of x and y from 63 to 191 to accommodate the 128x128 pixels of the USC loge. As a subtraction of 191 and 63 gives 128, this implies we can fit the USC logo of size 128x128 in the center of the Doheny image if the values of x & Y for Doheny image are varied in this range. The second challenge was to remove the white background of the USC logo (as shown in fig 1.5 and 1.6). This was done by comparing the value of pixels of the original image and USC logo pixel by pixel and checking for the value of white. As white is represented by 255, I compared the original pixel by 255 to remove the white background of the logo. Hence, all the white pixels of the logo were replaced by the pixels of the original image while watermarking procedure. Watermarking the logo in case of the color image was a little more complex as the overwriting procedure had to be done for each RGB channel for the image corresponding to the RGB channel of the USC logo. The white background of the USC logo was removed the same way for each channel. Watermarked color image

Fig:1.7

Watermarked gray-scale image

Fig:1.8

We were successfully able to watermark the two images. However, we were not able to clearly remove all the white background of the USC logo. This can be noticed by a close look to the image.

Problem 2- IMAGE ENHANCEMENT OBJECTIVE: we need to implement two contrast manipulation techniques called linear scaling and Histogram equalization, to enhance the low contrast images namely; rose_dark.raw, rose_bright.raw and rose_ mid.raw. We need to enhance the given low, high and medium contrast images and plot EE 569- Fall’08 | ID- 5994499980

5


histograms and the transfer function of the input and output images and to analyze and discuss the logic behind these techniques. Motivation An ideal image is said to have a histogram equally distributed in the whole gray scale range, i.e 0 to 255. Each gray level contains fairly good amount of pixels in an ideal image. An image with poor contrast has a range of gray level usually limited to a particular subset of the whole gray scale levels. For example, You will see the rose_dark image has gray scale values limited to a set [0-31]. As “0” is represented as Black in gray scale, the image has all the pixels with values close to black. This makes the overall image very dark and often unrecognizable. One of the most common defects of photographic or electronic images is poor contrast resulting from a reduced, and perhaps nonlinear, image amplitude range. Image contrast can often be improved by amplitude rescaling of each pixel. An image corrected for contrast is often more pleasant to human eyes. As the human eyes is known to lack the ability to mark the distinction between pixels that are very close in their intensity levels, an image with variable intensity levels makes an image appear clear and sharp to the human eye. The idea of stretching the histogram of an image and making an image with increased contrast is an interesting thing to implement. Furthermore, the method of contrast correction is widely used in the media industry to edit images affected by poor lighting conditions. As lighting conditions are vary from time to time and place to place, it is possible that one can get different results for the same kind of set up. Sometimes it is a useful thing, but often change in lighting conditions makes is impossible to take an particular picture. Hence, Contrast correction is a useful technique to learn as a student of digital image processing. Histogram A histogram is used to graphically summarize and display the distribution of a process data set. A histogram can be constructed by segmenting the range of the data into equal sized bins (also called 3 segments, groups or classes). In statistics, a histogram is a graphical display of tabulated frequencies, shown as bars. It shows what proportion of cases fall into each of several categories. A histogram differs from a bar chart in that it is the area of the bar that denotes the value, not the height, a crucial distinction when the categories are not of uniform width (Lancaster, 1974). The categories are usually specified as 4 non-overlapping intervals of some variable. The categories (bars) must be adjacent. Cumulative distribution function (CDF) In probability theory and statistics, the cumulative distribution function (CDF), also probability distribution function or just distribution function, completely describes the probability distribution of a real-valued random variable X. For every real number x, the CDF of X is given by

where the right-hand side represents the probability that the random variable X takes on a value less than or equal to x. The probability that X lies in the interval (a, b] is therefore FX(b) − FX(a) if a < b.

3 4

http://www.isixsigma.com/library/content/c010527c.asp http://en.wikipedia.org/wiki/Histogram

EE 569- Fall’08 | ID- 5994499980

6


If treating several random variables X, Y, ... etc. the corresponding letters are used as subscripts while, if treating only one, the subscript is omitted. It is conventional to use a capital F for a cumulative distribution function, in contrast to the lower-case f used for probability density functions and probability mass functions. This applies when discussing general distributions: some specific distributions have their own conventional notation, for example the normal distribution. The CDF of X can be defined in terms of the probability density function ƒ as follows:

Note that in the definition above, the "less or equal" sign, '≤' is a convention, but it is a universally used 5 one, and is important for discrete distributions.

Probability Density of a Pixel (in our Case) By the theory of relativity of occurrence, the probability of a particular even can be calculated by dividing the total number of occurrences of this event by the total number of occurrences of all events in a sample space.

Prob[x] = na/ n We calculate the probability of each pixel by calculating its total number of occurrences and dividing it by the total number of occurrences, i.e. 65536. Suppose a particular pixel is present 32768 times in the image, then its probability is 32768/65536=0.5. Procedure and Analysis We first plot the Histogram for each image and notice the range of gray scale values occupied by each image on the histogram of the image. Our goal is to distribute the 255 gray levels evenly in the new image that forms a contrast enhanced final image. To plot the histogram I read by imagedata array for value of each pixel. As a particular value is read we increment the number of that pixel for that particular gray level in our histogram table. We download this data in the text format in a txt file and plot the corresponding graph in Micrsoft excel6. We plot these graphs for each given image. Rose_dark.raw

5 6

Rose_mid.raw

Rose_bright.raw

Wikipedia: http://en.wikipedia.org/wiki/Cumulative_distribution_function This was allowed by the TA in the discussion board.

EE 569- Fall’08 | ID- 5994499980

7


Fig: 2.1

Fig: 2.2

Fig: 2.3

HISTOGRAMS of above images. no. of pixels with same gray levels for rose_dark 12000 10000 8000 6000 4000 2000 1 11 21 31 41 51 61 71 81 91 101 111 121 131 141 151 161 171 181 191 201 211 221 231 241 251

0

Fig: 2.1a Histogram of the Rose_dark.raw image. We can clearly see that all the pixels have a gray scale value range from minimum of “0=black” to 31. This makes the image very dark. This image also make it difficult to recog recognize nize the original image intelligibly.

no. of pixels with same gray levels for rose_mid 6000 5000 4000 3000 2000 1000 1 11 21 31 41 51 61 71 81 91 101 111 121 131 141 151 161 171 181 191 201 211 221 231 241 251

0

Fig: 2.2a Histogram of the Rose_mid.raw .raw image. We can clearly see that all the pixels have a gray scale sc value range from minimum of 64 to 128.. This makes the image ve very dull. This makes it difficult to recognize the original image intelligibly and lacks sharpness.

EE 569- Fall’08 | ID- 5994499980

8


no. of pixels with same gray levels for rose_bright 3500 3000 2500 2000 1500 1000 500 1 11 21 31 41 51 61 71 81 91 101 111 121 131 141 151 161 171 181 191 201 211 221 231 241 251

0

Fig: 2.3a Histogram of the Rose_bright.raw .raw image. We can clearly see that all the pixels have a gray scale sc value range from minimum of 128 to “255= white”. This makes tthe image too bright.. This image also make it difficult to recognize the original image intelligibly and lacks sharpness and gradation gradation.

EE 569- Fall’08 | ID- 5994499980

9


Full Scale linear Scaling There are three common linear scaling methods, the first one is called Linear Image Scaling, in which the processed image is linearly mapped over its entire range; the second one is called Linear Image Scaling with Clipping, where the extreme amplitude values of the processed image are clipped to maximum and minimum limits. The last one is called Absolute Value Scaling, which utilizes an absolute value transformation for visualizing an image with negatively valued pixels. The second technique is often subjectively preferable, especially for images in which a relatively small number of pixels exceed the limits.7 For our purpose, we are going to implement the second method, which is Linear Image Scaling. The idea of linear scaling is illustrated below.

This process Involves mapping of histogram of the input image in such a way that the histogram of the output image covers the entire range from [0-255] of gray scale levels. The main challenge faced here is to realize the mapping range. Low contrast images can be result of poor illumination and lack of dynamic range in the imaging sensor. These low contrast images have a very low dynamic range. Thus the primary idea is to increase the dynamic range of these images , that is to stretch the range from low to high linearly.We have an equation,

Where,

7

Digital Image Processing(fourth edition) by William K. Pratt

EE 569- Fall’08 | ID- 5994499980

10


(Fmin,Fmax)= minimum and maximum grey level of input image that is occupied (Gmin,Gmax)= minimum and maximum grey level of output image that is desired. In a way, this equation represents the line form y=mx+c, where m is the slope and c is the intersection on y axis. In our case the slope is given by the quantity (Gmax-Gmin) / (Fmax - Fmin). When we make Gmin=0 and Gmax=255, we cover the entire range for 8 bit images, hence the process is called full range linear scaling. Algorithm We scan the whole image stored in imagedata array one by one starting with first row and first column. As a particular gray level is encountered, we calculate the new gray level to be replaced by the above formula. Thus we replace each pixel value by the new pixel value obtained from the equation and the resulting image is contrast enhanced. We apply the same procedure in each of the given images with desired dynamic range.

Results after Linear scaling Rose_dark.raw Rose_dark before linear Scaling

Rose_dark after linear Scaling

Fig 2.1b: We see the Linear scaling technique converts a rather dark image in an image that is much brighter. The contents of the image can be easily recognized and the image looks more pleasant to the eyes.

The above image was linearly scaled for the following values: Fmin = 0 Fmax= 31 Gmin= 0 Gmax=255

EE 569- Fall’08 | ID- 5994499980

11


Slope= 8.22 or 88 Histogram of the final image change

histogram dark after linear scaling 12000 10000 8000 6000 4000 2000 1 13 25 37 49 61 73 85 97 109 121 133 145 157 169 181 193 205 217 229 241 253

0

12000 10000 8000 6000 4000 2000 1 11 21 31 41 51 61 71 81 91 101 111 121 131 141 151 161 171 181 191 201 211 221 231 241 251

0

no.pixels for rose_dark

histogram dark after linear scaling

Transfer Function

1.2 1 0.8 0.6 0.4 0.2 1 14 27 40 53 66 79 92 105 118 131 144 157 170 183 196 209 222 235 248

0

8

Nearest integer approximation

EE 569- Fall’08 | ID- 5994499980

12


Analysis As we compare the two histograms, we see the dynamic range is clearly stretched. The output image is also visually enhanced and the Cdf shows more level gradations then the original CDF. Rose_mid.raw Rose_mid before linear Scaling

Rose_mid after linear Scaling

Fig 2.2b: We see the Linear scaling technique converts a rather flat image to an image that has much more variations and gradations. The contents of the image can be easily recognized and the image looks more pleasant and vibrant to the eyes.

The above image was linearly scaled for the following values: Fmin =64 ; Fmax= 128 ; Gmin= 0; Gmax=255; Slope= 3.98 or 49 Histogram of the final image change

9

Nearest integer approximation

EE 569- Fall’08 | ID- 5994499980

13


new histogram for rose_mid 6000 5000 4000 3000 2000 1000

1 12 23 34 45 56 67 78 89 100 111 122 133 144 155 166 177 188 199 210 221 232 243 254

0

6000 5000 4000 3000 2000 1000

1 12 23 34 45 56 67 78 89 100 111 122 133 144 155 166 177 188 199 210 221 232 243 254

0

new histogram

old histogram

Transfer Function

EE 569- Fall’08 | ID- 5994499980

14


New CDF for MID_rose 1.2 1 0.8 0.6 0.4 0.2

1 12 23 34 45 56 67 78 89 100 111 122 133 144 155 166 177 188 199 210 221 232 243 254

0

Analysis We see that the dynamic range of the image is increased and the Cdf is also changed. The image is much better then the original image.

Rose_Bright.raw Rose_bright before linear Scaling

Rose_Bright after linear Scaling

Fig 2.1b: We see the Linear scaling technique converts a rather brightimage in an image that is much better. The contents of the image can be easily recognized and the image looks more pleasant to the eyes.

EE 569- Fall’08 | ID- 5994499980

15


The above image was linearly scaled for the following values: Fmin = 128 Fmax= 255 Gmin= 0 Gmax=255 Slope= 2.007 or 210

Histogram of the final image change

New histogram 3500 3000 2500 2000 1500 1000 500 1 12 23 34 45 56 67 78 89 100 111 122 133 144 155 166 177 188 199 210 221 232 243 254

0

3500 3000 2500 2000 1500 1000 500

1 12 23 34 45 56 67 78 89 100 111 122 133 144 155 166 177 188 199 210 221 232 243 254

0 no.pixels for rose_bright

New histogram

Transfer Function

10

Nearest integer approximation

EE 569- Fall’08 | ID- 5994499980

16


New CDF for MID_rose 1.2 1 0.8 0.6 0.4 0.2

1 12 23 34 45 56 67 78 89 100 111 122 133 144 155 166 177 188 199 210 221 232 243 254

0

Analysis

Conclusion: We see that the linear scaling of the given images produces a better result as compared to the original images. The gray scale range which was restricted to a particular subset of gray level was distributed in a wider range from 0 to 255. Thus, creating much better images then the original image.

Histogram Equalization Histogram equalization is the technique by which the dynamic range of the histogram of an image is increased. Histogram equalization assigns the intensity values of pixels in the input image such that the output image contains a uniform distribution of intensities. It improves contrast and the goal of histogram equalization is to obtain a uniform histogram. This technique can be used on a whole image or just on a part of an image. Histogram equalization redistributes intensity distributions. If the histogram of any image has many peaks and valleys, it will still have peaks and valley after equalization, but peaks and valley will be shifted. Because of this, "spreading" is a better term than "flattening" to describe histogram equalization. In histogram equalization, each pixel is assigned a new intensity value based on the its previous intensity level.11 The luminance histogram (as explained before) of a typical image is usually skewed towards a particular range. The histogram equalization Technique forces the histogram of an image to be uniform. We

11

www.CoderSource.net

EE 569- Fall’08 | ID- 5994499980

17


approach this method useful information given by the normalized CDF. We calculate the CDF for each original image and Process the resulting output image by the help of this information.

Procedure and Analysis: Our goal here is to make the histogram as uniform as possible. Here, Uniformity can either mean that each gray level has 256 pixels12 or by stretching the histogram in a way that instead of occupying a small set of values it occupies the entire range of gray level values. We would try both techniques one-by-one. Wide-Sense histogram equalization In this method we stretch the original histogram to cover the whole 0-255 range of gray levels. This technique does not guarantee equal number of pixels in each gray levels, but gives a contrast enhanced version of input image. We use the following formula:

The meaning of Max. Intensity Levels maximum intensity level which a pixel can get. For example, if the image is in the grayscale domain, then the count is 255. And if the image is of size 256x256 then, the No. of pixels is 65536. And the expression is the bracket means the CDF value for the value of input gray

level.This is how we get new intensity levels calculated for the old intensity levels13 In my method I started by calculating the CDF for each image from the histogram data calculated in the previous parts. I then have the CDF value for each gray level . I normalize it by dividing by (256*256) and then multiply the whole term by the max. Intensity level i.e 255. The completion of this procedure gives me a table of new intensity values. I then scan the image stored in imagedata array pixel-by-pixel and then replace the old intensities by new intensities. RESULTS FOR WISE-SENSE HISTOGRAM EQUALIZATION Rose_dark.raw Rose_dark before linear Scaling

12 13

Rose_dark after linear Scaling

making the image closer to ideal image as per definition www.CoderSource.net

EE 569- Fall’08 | ID- 5994499980

18


Fig 2.1b: We see the Linear scaling technique converts a rather dark image in an image that is much brighter. The contents of the image can be easily recognized and the image looks more pleasant to the eyes. However, we see the contouring effects in the image. The overall quality of the image is degraded while the contrast in increased

New HISTOGRAM

Rose_mid.raw Rose_mid before histogram equalization

Rose_mid after histogram equalization

EE 569- Fall’08 | ID- 5994499980

19


Fig 2.2b: We see the Linear scaling technique converts a rather flat image to an image that has much more variations and gradations. The contents of the image can be easily recognized and the image looks more pleasant and vibrant to the eyes Again we see lack of smoothness in some places This is the countouring effect as wee impose the new intensity on some pixels.

Histogram of the new image

EE 569- Fall’08 | ID- 5994499980

20


Rose_Bright.raw Rose_bright before histogram equalization

Rose_Bright after histogram equalization

Fig 2.1b: We see the Linear scaling technique converts a rather bright image in an image that has gradations in gray levels. The contents of the image can be easily recognized and the image looks more pleasant to the eyes.

Histogram of the final image change

Analysis Dynamic range is clearly increased drastically. The image looks much better then the original image.

Strict Sense Histogram Equalization EE 569- Fall’08 | ID- 5994499980

21


As we known, the PDF of a uniform distribution X is equal to X. Therefore, in order to have uniform distribution for the output image equal to 1, we need to evaluate the new intensities by the following formula:

New PDF= OLD PDFx(1/OLD PDF) This way the new Pdf is uniformly distributed at level 1. This implies that each gray level has equal number of pixels there by abiding with the definition of ideal image. To implement this in a program, we need the histogram of the original image as a reference. For the images given for this assignment, there are 256*256=65536 pixels in an image, and the pixel value range from 0 to 255, i.e. 256 values. Therefore, for each pixel value, there should be 256 pixels assigned to it. The histogram hence formed will be uniform. In my implementation, the Input image is recorded in the 3 –D array imagedata which hold the location , and value of a pixel. I scan the images one-by one for all values from 0 to 255. I start from zero, and while scanning for a 0 gray level I count the number of times it occurs in the image. As soon as I encounter the 256th occurrence I start replacing the next 0 levels by intensity 1 and continue scanning till the end of the array which is our last pixel. I continue this procedure for 255 times for each gray level and slice the whoe image in buckets of 256 pixels with increasing order of gray level intensities. By doing this, I can achieved a uniform histogram. Results by Strict sense Histogram equalization Rose_Bright.raw Rose_bright before histogram equalization

Rose_Bright after histogram equalization

Fig 2.1b: We see the Linear scaling technique converts a rather dark image in an image that is much brighter. The contents of the image can be easily recognized and the image looks more pleasant to the eyes.

Histogram of the final image EE 569- Fall’08 | ID- 5994499980

22


PDF of new image 300 250 200 150 100 50 1 12 23 34 45 56 67 78 89 100 111 122 133 144 155 166 177 188 199 210 221 232 243 254

0

PDF of new image

Transfer Function

New CDF for strict sense histogram equalization 1.2 1 0.8 0.6 0.4 0.2 1 12 23 34 45 56 67 78 89 100 111 122 133 144 155 166 177 188 199 210 221 232 243 254

0

Analysis The transfer function that is the CDF is conerted to a srtraigh line. The image looks much better but has contouring effects.

Rose_mid.raw EE 569- Fall’08 | ID- 5994499980

23


Rose_bright before histogram equalization

Rose_Bright after histogram equalization

Fig 2.1b: We see the Linear scaling technique converts a rather dark image in an image that is much brighter. The contents of the image can be easily recognized and the image looks more pleasant to the eyes.

Histogram of the final image change

PDF of new image 300 250 200 150 100 50 1 12 23 34 45 56 67 78 89 100 111 122 133 144 155 166 177 188 199 210 221 232 243 254

0

PDF of new image

Transfer Function EE 569- Fall’08 | ID- 5994499980

24


New CDF for strict sense histogram equalization 1.2 1 0.8 0.6 0.4 0.2 1 12 23 34 45 56 67 78 89 100 111 122 133 144 155 166 177 188 199 210 221 232 243 254

0

Rose_dark.raw Rose_bright before linear Scaling

Rose_Bright after linear Scaling

Fig 2.1b: We see the Linear scaling technique converts a rather dark image in an image that is much brighter. The contents of the image can be easily recognized and the image looks more pleasant to the eyes. We can see clear effects of countouring.

Histogram of the final image

EE 569- Fall’08 | ID- 5994499980

25


PDF of new image 300 250 200 150 100 50 1 12 23 34 45 56 67 78 89 100 111 122 133 144 155 166 177 188 199 210 221 232 243 254

0

PDF of new image

Transfer Function

New CDF for strict sense histogram equalization 1.2 1 0.8 0.6 0.4 0.2 1 12 23 34 45 56 67 78 89 100 111 122 133 144 155 166 177 188 199 210 221 232 243 254

0

EE 569- Fall’08 | ID- 5994499980

26


Problem 3 The objective of problem 3 is to study and anaylse different kinds of noises in gray-scale and color images and learn techniques to remove two kinds of noises in particular. We will focus on removal of 1. Impulse noise(Salt and pepper noise ) and Uniform Noise. 2. Mixed noise We need to rectify images affected by these kind of noise and present a hypothesis for the choice of filters and parameters in each case.

Motivation Images are often corrupted by different kinds of noise. These noise can come from the recording media, the channel of communication or some other source. In either case the quality of the image is degraded and the image becomes unclear or unclean. Noise is a primary problem in processing of digital images. The principal sources of noise in digital images arise during image acquisition or transmission. The imaging sensors is affected by a variety of factors, such as environmental conditions during image acquisition, and by the quality of the sensing elements themselves. For instances, in acquiring images with CCD camera, light levels and sensor temperature are major factors affecting the amount of noise in the resulting image. Images are corrupted during transmission principally due to interference in the channel used for transmission. For eg , an image transmitted using a wireless network might be corrupted as a result of lightening or any atmospheric disturbances. Some types of noises are removable and some of them need extensive processing. Basically, we apply different kinds of filters that can filter out the unwanted signals from the input signal. We will study a few noise removal methods in detail.

Problem 3.1 In this part we work on images by applying masks or matrix operations. To implement this efficiently we duplicate our image of size 256x256 into a new image or size 258x258. This is done by copying the columns and rows at the boundary of original image to their adjacent empty new location on the mew image. This done to be able to apply the mask efficiently on the pixels at the boundary. If we Ignore the copying of pixels in new rows and columns and let their value be zero, then this could affect the application of mask as the gray level 0 denotes the color Black and hence can make the boundaries go relatively darker because of this dark pixel. This is because most of the masks are averaging filters. We will analyze these techniques in depth in the further discussions. Objective: Gray-Level Image EE 569- Fall’08 | ID- 5994499980

27


Problem 3.1.b- IMPULSE NOISE Impulse noise is a category of noise which includes unwanted, almost instantaneous (thus impulse-like) sharp peaks. Noises of the kind are usually caused by electromagnetic interference, scratches on the recording media, and ill synchronization in digital recording and communication.14 Salt and pepper noise is a form of noise typically seen on images. It represents itself as randomly occurring white and black pixels. Usual and effective noise reduction method for this type of noise involves the usage of median filter.15 We try different approaches in treating our input image for impulse noise removal.

We use the concept of neighborhood processing in removing these kind of noises. The spatial distribution of these images can show a distinct difference in values of pixels when a noise is present in a particular section of the image. Pixels carrying noise are usually marked with a very high or very low value than its neighboring pixels. The reason for this is the composition of the image. An image is comprised of similar values of pixels to represent a surface and high frequency pixels to represent edges. However, the noise forms a different distribution pattern. These noisy pixels are evident from analyzing the spatial distribution of an image. Any value that is outrageously different from its neighboring pixel values is often considered as noise.

We will start analyzing an Image for noise by picking up a set of pixels that are spatially connected and analyze their values for any possible values of noise. Median filter: Procedure Im my first approach I choose nine pixels that are spatially connected in form of a 3x3 matrix starting from the first pixel of my new 258x258 image. Ifix the center pixel at origin and name the other pixels as per their location in coordinates. For example, If the center pixel is (x,y), I name its adjacent pixel to the left as (x-1,y) and the one to the right as (x+1,y). Similarly I name all the pixels. I then store these values in an array and ascending order of values. We then choose the median16 of the array and replace the center pixel with the median value. We repeat the process for each matrix of pixel till the last pixel is analyzed. Explanation

14

http://en.wikipedia.org/wiki/Impulse_noise_(audio) http://en.wikipedia.org/wiki/Salt_and_pepper_noise 16 A median is the center value if the data is arranged in an ascending order. 15

EE 569- Fall’08 | ID- 5994499980

28


As we know, that the impulse nose is either represented as 0 or 255 in the case of salt and pepper noise, sorting the data in a ascending order brings 0 to the 1st entry and 255 to the last one. As we are choosing the middle value, both 0 and 255 are excluded from the result and hence we are able to exclude the noise. Results

Pepper_imp( given imge)

Pepper_imp after median filtering

Pepper_original image

Pepper_imp after median filtering

Analysis

EE 569- Fall’08 | ID- 5994499980

29


We are able to primarily remove all noise. However, we see a very few noise pixels in the output image. The reason for this could be that, the noise in these regions is so significant that the median turns out to be the noise itself. It could also happen that the noise is not a 0 or 255 level. In which case it can lie within a range that can be taken as no-noise by the filter. Median filter can be cascaded or the sze of matrix can be increased or decreased depending on our requirement. We can also consider a cross type combination of 9 pixels and analyze the image for noisy pixels. To keep a double check, I have taken care that if the median is a noisy pixel, then the original pixel will not be replaced by the noisy pixel. The total result works very good. In our case, 3x3 matrix median filter works very efficiently. Pseudo Median Filtering: It is believed that median filter is computationally intensive; the number of operations grows exponentially with window size . for decreasing the complexity of the algorithm and making the method more efficient we try the miniman-maximin approach named Pseudo median filter. Elplanation: Let SL denote the sequence of elements s1,s2,….SL. The pseudomedian of the sequence is

PMED{SL} = (1/2) (MAXMIN{SL}) + MINIMAX{SL}

—1-D case

PMED{SE}= ½ MAX[MAXIMIN{XC},MAXIMIN{YR}] - 2D CASE + ½ MIN[MINIMAX{XC},MINIMAX{YR} Where for M=(L+1)/2 MAXIMIN{SL} =MAX{[MIN(s1,,,,,,sM)],[MIN(s2,…sM+1)]…….,,,[MIN(sL-M+1,,,,,sL)]} MANIMAX{SL} =MIN{[MAX(s1,,,,,,sM)],[MAX(s2,…sM+1)]…….,,,[MAX(sL-M+1,,,,,sL)]} Operationally,the sequence of L elements is decomposed into Subsequences of M elements,each of which is slid to the right by one element in relation to its predecessor and the appropriate MAX and MIN operations are computed. It is also possible to recursively decompose the Max Min functions on long sequences into sliding fucctions of length 2 and 3 for pipeline computation.We compute MAX,MIN functions over rectangular windows and this filter tends to smoothen image.In my program,I am taking min(1,2,..5)pixels,min(2,3…6),min(3,4,,…7) till min(5,6….9) pixel and max of all these values and I replace the center pixel by that max value as mentioned in the book.17 The basic logic behind it is taking different sets of spatially related pixels and processing them. In MINIMAX, we take minimum values of these sets and chose the maximum value out of those. We repeat 17

Digital image processing by pratt.

EE 569- Fall’08 | ID- 5994499980

30


the procedure for MAXIMIN. We do this for horizontal and vertical rows and compute the output of the center pixel by the above formula. We do this assuming the neighborhood information of a spatially distributed image is related to each other. Hence considering all the possible combinations can provide a higher level of analysis of data. Result: Pepper_imp( given imge)

Pepper_imp after pseudo median filtering

Pepper_imp after pseudo median filtering

Pepper_imp after cascading pseudo median and median filtering

EE 569- Fall’08 | ID- 5994499980

31


Pepper_original image

Pepper_imp after median filtering

We see that by applying psudo-median filter to a 3x3 matrix of our image, we were not able to remove the noise completely. This is because for our composition of image, Median filter work better and pseudo filter takes some pixels that are noise as desired pixels. Outlier Filter Here we compare the center pixel with the average of the surrounding pixels. If the difference between these pixels is is higher then a threshold value T, we consider this center pixel as noise. And replace this with the average of the surrounding pixels. The formula below represents the outlier filter.

As T is chosen by the user here, we have to test image for various values of T that gives a better result. Cascading different filters. Shown above

EE 569- Fall’08 | ID- 5994499980

32


Problem 3.1.b Uniform noise The uniform noise being an additive noise, adds itself to each pixel in the image. Hence, the histogram of the image with uniform noise is uniform in nature. This makes it difficult to apply filters like median , pseudo median and outlier to remove the noise as all these filter are based on difference in values in the neighboring pixels. The approach we use here is to apply different masks that scale different pixels in such a way that the center pixel is given a value different but related to its neighbors. These masks act as low pass of high pass filters as per their construction. Most of them are averaging filter but with different values scaled with different weights. Lets discuss a few of Masks for uniform noise removal in detail. Application of these masks: Application of these masks is analogous to the way we treat noise in frequency domain. We convolute these masks with our chosen matrix and replace the center pixel with the average of convolved values. The most basic type of mask is the matrix represented as

MASK1 = 1/9*[(1, 1,1)t (1, 1,1)t (1, 1,1)t ] This is nothing but a simple averaging filter as it is simply adding all the elements of chosen matrix and dividing it by 9 which is the sum of pixels of our mask.

Mask2 = 1/10*[(1, 1,1)t (1, 2,1)t (1, 1,1)t] This is a similar mask but here we are multiplying the center pixel with a value 2. This is done because we wish to give higher importance to the center pixel as opposed to the pixels in the surroundings.

Mask2 = 1/16*[(1, 2,1)t (2, 4,2)t (1, 2,1)t] Similar to the masks above, here we are adding weight to the center pixel and immediate neighbors of the center pixels. These masks are low pass masks with all positive elements. These arrays are called noise cleaning masks and are normalized to unit weighting so that noise cleaning process doesn not introduce an amplitude bias in the processed image. Since all these are averaging filter, they reduce the sharpness of the image hence, making the image blur. Adding weights to the center pixels helps in reducing the blur effect of the process and try to remove the noise. Other MASKs

Mask4=1/48*[(1 2 2 2 1)t (2 2 2 2 2)t (2 2 4 2 2)t (2 2 2 2 2)t (1 2 2 2 1)t];

EE 569- Fall’08 | ID- 5994499980

33


Results Pepper_uni before filtering

Pepper_uni after mask 1

Conclusion and reasons Pepper_original image

Pepper_uni after mask 1

Pepper_uni before filtering

Pepper_uni after mask 2

EE 569- Fall’08 | ID- 5994499980

34


Pepper_uni before filtering

Pepper_uni after mask 3

Problem 3.2 Color noise Objective We have been given a color image that has each channel embedded with mixed noise. We need to process this image for noise removal and compare it with original image. The noise in color image is similar to the noise in gray level. However, this noise in color image is distributed in different channels. The resulting images had noises in all three channels. Hence, the noise removal process for noisy color images is the same as above but we need to process each channel of the image for the similar kind of noise. Also, since this is a mixed noise, we process each channel of the image for different kind of noise like, impulse noise and uniform noise. We try out different cascading of noise removal techniques to remove the maximum noise form the image. EE 569- Fall’08 | ID- 5994499980

35


Color_noise before filtering

Color_noise after cascasing mask3 and median filter

Color_noise after cascasing mask2 only

Color_noise after second cascade of median filter

Color_noise after cascasing mask3 only

Color_noise after psuedo median filter

EE 569- Fall’08 | ID- 5994499980

36


Results Analysis Original image

Best result

The image shows lot of blurring effects as the filters are averaging filter. We were not able to remove the noise completely in any of the above cases.

EE 569- Fall’08 | ID- 5994499980

37


Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.