研究随机共振的朋友请进,帮忙看一下
利用随机共振对失真的图象进行处理,恢复到好的效果。我把原始图像I0的灰度图,把大于100的变成白色,其余的为黑色,相当与二值处理了,得到I。
利用随机共振处理这个图像,为图像加不同方差的高斯噪声。对每个不同的方差,产生100副图像,然后平均得到随机共振图像SR_M
其中的控制条件就是I0和SR_M的PSNR值,当最大的时候效果是最好的,这时候输出SR_M。目前我利用下面的程序对图像恢复确实得到了很好的效果,但是这个过程中我加了一步,就是对不同的sigma,得到100副图后,我又加了I,这一步应该没有。可是没有的话又得不到很好的效果。
所以请懂随机共振的朋友帮忙看下,是否有问题。
同时:利用imnoise加gaussian噪声,我把方差都搞到了25,是不是很变态?
程序,附件中也有:
b=25;
Pold=0; %initial PSNR
Pnew=1;
I0=imread('lenaindaytime.bmp');
I0=rgb2gray(I0);
=size(I0);
figure(1),imshow(I0);
I0=double(I0);
I=I0-100;
figure(2),imshow(I);
% I=double(I);
M=zeros(m,n);
for i0=1:5
Pold=Pnew;
b=b+1; %square deviation
%B
Bm=mean(mean(I),2);
%S'
S=fft2(I);
Sm=mean(mean(S.^2),2);
%deta
deta=b*(1+(1-3^0.5*(Sm/Bm^2))^0.5)^0.5;
for i3=1:100
%gaussian nosie
H=imnoise(I,'gaussian',0,b);
Hmin=min(H(:));
Hmax=max(H(:));
H=(H-Hmin)/(Hmax-Hmin);
H=255.*H;
H=floor(H);
for i4=1:m
for j4=1:n
if H(i4,j4)>=deta
H(i4,j4)=255;
else
H(i4,j4)=0;
end
end
end
M=M+H;
end
N=M+I;
Nmin=min(N(:));
Nmax=max(N(:));
N=(N-Nmin)/(Nmax-Nmin);
N=255.*N;
N=floor(N);
%MSE
MSE=mean(mean((I0-N).^2),2);
% new PSNR
Pnew=10*log10(255^2/MSE)
%plot sigma=b & PSNR
figure(3),plot(b,Pnew,'.');
hold on
end
Nmin=min(N(:));
Nmax=max(N(:));
N=(N-Nmin)/(Nmax-Nmin);
figure(4),imshow(N);
[ 本帖最后由 xiuhuwang 于 2009-5-25 15:08 编辑 ] 学习中!
页:
[1]