I want to add Multiplicative Gamma Noise to a image using "randg" function in Matlab and remove that noise. We have to keep in mind that the noise should have mean 1 and level 4. It should follow Gamma law ( with Gamma Probability Distribution Function). The image after addition of noise becomes
f=u*v; where f=noisy image, u=original image, v=noisy image.
The gamma law is: gv(v)=L^L/(Γ(L)) v^(L-1) exp(-Lv) 1_(v≥0)
where L is the noise level and v is the noise.
Here is the code that I've tried:
img = imread('lena.png');
img1 = img./ 255;
imgdob = double(img1);
noisyimg = imgdob + randg(1,size(imgdob)) .* 0.4;
noisyimg(noisyimg< 0) = 0;
noisyimg(noisyimg> 1) = 1;
figure,imshow(img);
figure,imshow(noisyimg);
imwrite(img, 'lenaOriginal.jpg', 'Quality', 100);
imwrite(noisyimg, 'lenaNoisy.jpg', 'Quality', 100);
But I could not get the expected result. Please suggest me a way.