Failed to add uniform noise to the image

3 views (last 30 days)
Hi Everyone, I am trying to add uniform noise using the following syntax,
image = ones([512,512])*128;
A = .1;
B = .2;
matrix_uniform = A + (B-A)*rand(size(image));
noisy_image = imnoise(uint8(image),'localvar',matrix_uniform);
K = wiener2(noisy_image,[5 5]);
figure, subplot(1,3,1),imshow(noisy_image), subplot(1,3,2), imshow(K),
subplot(1,3,1), imhist(noisy_image)
But I am unable to get uniform shape in the histogram. Can anyone tell me what wrong I am doing?

Accepted Answer

Iman Ansari
Iman Ansari on 14 May 2013
Hi. You don't need imnoise:
round(128+0.2)=128
with 0.1 and 0.2 like you didn't add any noise. Uniform noise with zero mean:
image = ones([512,512])*128;
A = -30;
B = 30;
matrix_uniform = A + (B-A)*rand(size(image));
noisy_image = image + matrix_uniform;
figure,
subplot(1,2,1)
imshow(noisy_image./255),
subplot(1,2,2)
imhist(uint8(noisy_image))

More Answers (0)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!