Failed to add uniform noise to the image

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

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)

Categories

Find more on Just for fun in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!