?? imf_sift.m
字號(hào):
function IMF=IMF_sift(Image,conn,sd)
% IMF 是從圖像Image中分解得到的固有模態(tài)函數(shù)
% Image 是輸入圖像,conn 是檢測(cè)圖像極值點(diǎn)時(shí)所用到的像素鄰域,通常取conn=4或conn=8
% sd 是篩選過(guò)程中的結(jié)束條件
% imf_num 是篩選所要得到的固有模態(tài)函數(shù)IMF的個(gè)數(shù)
Ires=Image; %復(fù)制圖像給Iresi
SD=1; % 設(shè)置迭代條件初始值
while(SD>sd)
%Iresi=wextend('2D','symw',Iresi,100,'b');
Orig=symmetric_extension(Ires,100); %鏡像延拓圖像
[m,n]=size(Orig);
[Upenvelop,Lowenvelop]=Envelope(Orig,conn); %計(jì)算極值點(diǎn)上下包絡(luò)
Emeani=(Upenvelop+Lowenvelop)./2; %原始信號(hào)均值包絡(luò)
Iresi=Orig-Emeani; %第一次去均值結(jié)果h1
IresiTrue=Iresi(101:m-100,101:n-100); %去延拓h1圖像
Iresisym=symmetric_extension(IresiTrue,100); %鏡像延拓h1圖像
[Upenvelop,Lowenvelop]=Envelope(Iresisym,conn); %計(jì)算h1的上下均值
Emeanj=(Upenvelop+Lowenvelop)./2; %求的h1的包絡(luò)均值
Iresj=Iresi-Emeanj; %第二次去均值結(jié)果h2
IresjTrue=Iresj(101:m-100,101:n-100); %去延拓h2圖像
[mm,nn]=size(IresiTrue);
ERRup=0;
ERRlow=0;
for i=1:mm
for j=1:nn
ERRup=ERRup+(abs(IresiTrue(i,j)-IresjTrue(i,j)))^2;
end
end
for i=1:mm
for j=1:nn
ERRlow=ERRlow+IresiTrue(i,j)^2;
end
end
SD=ERRup/ERRlow;
Ires=IresjTrue;
end
IMF=IresjTrue;
%figure(1);imshow(IMF,[])
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -