Info

Questa domanda è chiusa. Riaprila per modificarla o per rispondere.

I have added (0 mean,std=30) noise to uploaded image

1 visualizzazione (ultimi 30 giorni)
vipul utsav
vipul utsav il 6 Feb 2013
Chiuso: MATLAB Answer Bot il 20 Ago 2021
I have added (0 mean,std=30) noise to grayscale image. and i also uploaded my code to find additive noise from noisy image. but i have got wrong std(std=180). please help me to correct my code.
I have made this code using datamasking algorithm for noise estimation.
In this algorithm first noisy image should filtered using laplacian mask and then filterd image contain additive noise with only edges.To generate edges pixel, laplacian filterd image filterd by sobel edge detector.And then this edge pixels removed from laplacian filtered image. and this resultant image represent additive noise.
clc;
clear all;
close all;
%image read
I = imread('cameraman.tif');
n=0+(30*randn(size(I)));
subplot(2,2,1);
imshow(I,[]);
title('original Image');
%n=uint8(n);
I=double(I);
%generate noisy image
e=I+n;
subplot(2,2,2);
imshow(e,[]);
title('noisy Image');
%apply laplacian mask to generate noise
h=[1 -2 1
-2 4 -2
1 -2 1];
mm = imfilter(e,h);
subplot(2,2,3);
imshow(mm,[]);
title('laplacian Image');
nn=double(mm);
std(nn(:))
%apply sobel mask to laplaciuan image to generate sobel edge image
mm1=edge(mm,'sobel');
%make edge pixels is equal to laplacian pixels
for ii=1:256
for jj=1:256
if(mm1(ii,jj)==1)
mm2(ii,jj)=mm(ii,jj);
else
mm2(ii,jj)=0;
end
end
end
%mm2=uint8(mm2);
subplot(2,2,4);
imshow(mm2,[]);
title('sobel Image');
ss2=double(mm2);
std(ss2(:))
%subtract edge pixels from laplacian image to generate final noise
mm3=mm-mm2;
figure
imshow(mm3,[])
nn1=double(mm3);
std(nn1(:)) %final noise

Risposte (0)

Questa domanda è chiusa.

Community Treasure Hunt

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

Start Hunting!

Translated by