2

I am using Matlab function imnoise to add gaussian noise to one image. However, it seems that adjacent samples of the noise is correlated. I am using matlab code below to add noise.

 I = imread('eight.tif');
 J = imnoise(I, 'gaussian', 0, 0.02);
 figure; imshow(I);
 figure; imshow(J);

enter image description here

From the image, it contains many short vertical gray lines which maybe be image structures for some cases. Is the noise really additive white gaussian noise(AWGN)?

histogram of noise: enter image description here

Jogging Song
  • 425
  • 6
  • 14
  • 1
    Perhaps those patterns appear just as often as you would expect from white noise. What does the autocorrelation (using xcorr2 maybe) of the noise look like? For white noise it should be just a single spike with a noise floor. – Olli Niemitalo Feb 14 '16 at 11:05
  • 1
    I feel the each intensity of the pixels in lines is different. – KKS Feb 14 '16 at 11:30
  • @OlliNiemitalo Just as you mentioned, the output of xcorr2 is a single spike. cc = xcorr2(double(J - I), double(J - I)). I only know correlation between random variables. From the link https://en.wikipedia.org/wiki/Autocorrelation, one image is considered as a random process. Is it same as a 2d matrix of random variables? – Jogging Song Feb 15 '16 at 03:06
  • @김갑수The lines have lengths of several pixels, even if the variance of the noise is small. They are like image patterns. They will be left as lines in filtered images when I am trying to remove noise. – Jogging Song Feb 15 '16 at 03:13
  • @OlliNiemitalo I don't understand the meaning of noise floor. What factors will influence noise floor? How can I calculate one quantity to represent the level of noise floor? – Jogging Song Feb 15 '16 at 05:32
  • Yes it's a 2-d matrix of random variables. If it is white noise then they are independent random variables. From the observations (pixels), xcorr2 only estimates the autocorrelation of the underlying random process. So it will have some error that looks like a noise floor in the xcorr2 output. – Olli Niemitalo Feb 15 '16 at 08:39
  • 1
    I don't know the exact formula for the error but for white noise I think the error's standard deviation decays by $1/\sqrt{N}$, where $N$ is the number of observations used in calculation of one value of the autocorrelation matrix. – Olli Niemitalo Feb 15 '16 at 08:51

1 Answers1

2

Yes it is. However, unlike real AWGN which comes mostly from thermal agitation in electronics, matlab's noise is not purely random, this might be the cause of you seeing a deterministic pattern. But this pseudo-random noise is usually random enough to approximate real life noise

If you want to assess the noise "randomness", plot an intensity histogram of In-I, with In being the noised image and I the original image (you are subtracting the deterministic part and keeping the random part).

MaximGi
  • 667
  • 4
  • 15