Я хочу добавить Мультипликативный гамма-шум к изображению с помощью функции «randg» в Matlab и удалить этот шум. Мы должны иметь в виду, что шум должен иметь значение 1 и уровень 4. Он должен следовать закону Гамма (с функцией распределения вероятности гамма). Изображение после добавления шума будетСоздание шумового изображения и снятие шума Использование randg Gamma Law в Matlab?
f = u * v; где f = шумное изображение, u = исходное изображение, v = шумное изображение.
гамма закон: г.в. (v) = L^L/(Γ (L)) V^(Л-1) ехр (-LV) 1_ (v≥0)
где Ь уровень шума и v - шум.
Вот код, который я пробовал:
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);
Но я не мог получить ожидаемый результат. Пожалуйста, предложите мне способ.
Вы пробовали что-нибудь? Вопросы, запрашивающие код без каких-либо усилий, скорее всего, будут закрыты. Вы можете улучшить свой вопрос, показывая, что вы пробовали, и где вы застряли. Благодаря! –
Да Я пробовал код, и на этот раз я редактировал этот вопрос вместе с кодом, но проблема в том, что я не получаю ожидаемого результата. Пожалуйста, предложите мне способ. –
@unique_CODER Можете ли вы попробовать мое решение и сообщить мне, разрешает ли он проблему? – krisdestruction