bemd.m
来自「这个是EMD分解算法,相对比较简单,十分适合初学者,我开始也是从个程序入手的,觉」· M 代码 · 共 36 行
M
36 行
function IMF_all=BEMD(Image,imf_num,sd,conn)
% IMF_all 用来存储分解得到的所有IMF,IMF_all初始化为一三维矩阵
% imf_num 表示想要分解得到的IMF的个数
% sd 是人工选择的阈值,一般取<0.25
% conn 是用来选取极值的参数
%---------------------------------------------------------------%
Image=imread('lena.tif');
Image=double(Image);
figure(1);imshow(Image,[])
%---------------------------------------------------------------%
%%Image=im2double(Image); %转化图像为双精度图像
%%%Image=mat2gray(double(Image)); %将double类型的图像转换成灰度级
%figure(1);imshow(Image)
%----------------------------------------------------------------%
Imm=Image;
IMF_all=[];
%[m,n]=size(Imm);
imf_num=1,conn=8,sd=0.20;
for it=1:imf_num
IMF=IMF_sift(Imm,conn,sd);
figure(it+1);imshow(IMF,[]),title('第1个IMF')
Imm=Imm-IMF;
IMF_all(:,:,it)=IMF;
end
IMF_all(:,:,it+1)=Imm;
residue=IMF_all(:,:,it+1);
figure(30);imshow(residue,[]),title('剩余图像')
IMF1=IMF_all(:,:,1);
%IMF2=IMF_all(:,:,2);
%IMF3=IMF_all(:,:,3);
%IMF4=IMF_all(:,:,4);
Res=IMF_all(:,:,2);
%breakpoint
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?