The value of variance in function imnoise in case of gaussian is a bit confusing
4 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Sajid Khan
el 2 de Abr. de 2013
Comentada: Xiao Ling
el 6 de Mzo. de 2021
Hi Everyone,
I am trying to add gaussian noise to image with some variance and mean, generally variance of 50 is considerable, but the function imnoise make image so much noisy even for a variance of 0.1,
image = rgb2gray(imread('pepper.jpg')); noisy_image = imnoise(image,'gaussian',0,0.1);
I just wanna ask that is this variance normalized using any specific scale, if yes, then with what factor do I need to multiply it to get the original one.
1 comentario
Respuesta aceptada
Wayne King
el 2 de Abr. de 2013
imnoise works with an intensity image, so if you are inputting a unit8 image for example with values in the range [0,255], then imnoise first does
I = imread('eight.tif');
I = im2double(I);
before adding the Gaussian noise, so basically you scale every value in your image [0,255] by 255 so that it falls into the interval [0,1] and then add the noise to that.
1 comentario
Image Analyst
el 2 de Abr. de 2013
Then if you want a uint8 image back int he original range you need to multiply by 255 and cast to uint8
noisyImage = uint8(255 * noisyImage);
If you just multiply by 255 but don't cast to uint8, then you can do that but you'll have to use [] everytime you display it:
imshow(noisyImage, []);
or else it will show up as all white.
Más respuestas (1)
Sajid Khan
el 9 de Abr. de 2013
1 comentario
Image Analyst
el 9 de Abr. de 2013
That would be 255. Actually you can add anything but whenever the sum would exceed 255 it will get clipped at 255 because it's uint8. The most you can add without clipping is 255, which would only happen when added to a value of 0.
Ver también
Categorías
Más información sobre Image Processing Toolbox en Help Center y File Exchange.
Productos
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!