|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?我要加入
x
利用随机共振对失真的图象进行处理,恢复到好的效果。
我把原始图像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);
[m,n]=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 编辑 ] |
|