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),'秒']);