www.gusucode.com > 红外图像增强及目标检测演示界面matlab源码程序 > code/WaveleteImEn.m

    function WaveleteImEn
clear all
  I0=U_Open; 
  if (I0==0) errordlg('图像打开失败');break; end
  label=inputdlg('若图像为暗目标图像,请输入0,否则输入1','图像类型标志',1,{'1'});
  label=str2num(char(label));
  if isrgb(I0) I0=rgb2gray(I0);end
  [row col]=size(I0);
   if(label==1)%图像为天空背景弱小亮点目标图像,图像带边匡     
      [row col]=size(I0);
      I=im2double(I0(30:row-35,45:col-44));
      I0=I;
  elseif(label==0)%图像为海空背景下的斑点目标图像,目标较背景暗
       [row col]=size(I0);
      I0=im2double(I0(10:row-20,10:col-10));
       m=max(I0(:));
       I=m-I0;
   else
      errordlg('输入图像类型错误');break;
   end
 tic
  [c1,s1]=wavedec2(I,4,'db2');
  sz=s1(1,:);%size of app. coef.(N=4)
  c1(1:sz(1)*sz(2))=0;%令低频部分为0
  f1=waverec2(c1,s1,'db2');%得到主要包含高频信息的图像
  f1=medfilt2(f1);
figure
colormap(gray);
subplot(1,2,1);
imagesc(I0)
title('原图像')
subplot(1,2,2);
imagesc(f1);
title('增强图像')
msgbox(['所用时间',num2str(toc),'秒']);