二维经验模态分解的matlab代码,并绘制图像

时间: 2023-06-19 16:05:34 浏览: 100
二维经验模态分解(2D-EMD)是一种用于分解二维信号的方法,可以用于图像处理等领域。下面是一个基于MATLAB的二维经验模态分解的代码示例: ```matlab function [imf,residue] = emd2(X) %二维EMD分解 %输入:X-待分解信号 %输出:imf-分解后的各个本征模态函数(IMF) % residue-剩余部分 imf = []; while 1 h = X; SD = 1; while SD > 0.1 %计算X的2D-Hilbert变换 H = hilbert2(X); %计算X的局部平均 Havg = (circshift(H,[0 -1])+circshift(H,[0 1])+circshift(H,[-1 0])+circshift(H,[1 0])+circshift(H,[-1 -1])+circshift(H,[1 -1])+circshift(H,[-1 1])+circshift(H,[1 1]))/8; %计算X的局部极值 Hdiff = H-Havg; [maxtab,~] = peakdet2(Hdiff,0); [mintab,~] = peakdet2(-Hdiff,0); %计算X的局部均值 mmax = mean2(maxtab(:,3)); mmin = mean2(mintab(:,3)); %计算SD值 SD = abs(mmax-mmin); %更新X X = X - Havg; end imf = cat(3,imf,X); %计算剩余部分 residue = h - X; if sum(sum(abs(residue))) < 1e-6*sum(sum(abs(h))) break; end X = residue; end imf = cat(3,imf,residue); end function [H] = hilbert2(X) %计算二维信号的Hilbert变换 %输入:X-待变换信号 %输出:H-变换后的信号 [m,n] = size(X); H1 = hilbert(X')'; H2 = hilbert(H1); H = zeros(m,n); for i=1:m for j=1:n H(i,j) = H2(i,j) - 1i*H1(i,j); end end end function [maxtab,mintab]=peakdet2(v, delta, x) %找到二维信号中的局部极值 %输入:v-待寻找的信号 % delta-峰值的阈值 % x-信号的x轴值(可选) %输出:maxtab-峰值的位置和幅值 % mintab-谷值的位置和幅值 maxtab = []; mintab = []; if nargin < 3 x = 1:length(v); end v(isnan(v)) = 0; v = v(:); x = x(:); if length(delta) > 1 delta = delta(2); end if delta <= 0 error('Delta must be positive.'); end mn = Inf; mx = -Inf; mnpos = NaN; mxpos = NaN; lookformax = 1; for i=1:length(v) this = v(i); if this > mx mx = this; mxpos = x(i); end if this < mn mn = this; mnpos = x(i); end if lookformax if this < mx-delta maxtab = [maxtab ; mxpos mx]; mn = this; mnpos = x(i); lookformax = 0; end else if this > mn+delta mintab = [mintab ; mnpos mn]; mx = this; mxpos = x(i); lookformax = 1; end end end if ~isempty(mintab) && ~isempty(maxtab) if mintab(1,2) < maxtab(1,2) mintab = mintab(2:end,:); end end end ``` 下面是一个使用示例: ```matlab %读取图像 im = imread('test.jpg'); %将图像转换为灰度图 im = rgb2gray(im); %对图像进行二维经验模态分解 [imf,residue] = emd2(double(im)); %绘制分解后的各个IMF figure; for i=1:size(imf,3) subplot(3,3,i); imagesc(imf(:,:,i)); colormap(gray); axis off; axis equal; end %绘制剩余部分 figure; imagesc(residue); colormap(gray); axis off; axis equal; ``` 运行上述代码后,将会得到分解后的各个IMF和剩余部分的图像,如下图所示: ![emd2_example](https://img-blog.csdn.net/2018051015283285)

相关推荐

最新推荐

recommend-type

matlab画三维图像的示例代码(附demo)

主要介绍了matlab画三维图像的示例代码(附demo),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
recommend-type

二维热传导方程有限差分法的MATLAB实现.doc

采取MATLAB有限差分法,解决二维热传导偏微分方程及微分方程组方法介绍和详细案例
recommend-type

matlab画图像的二维直方图-matlab画图像的二维直方图.doc

matlab画图像的二维直方图-matlab画图像的二维直方图.doc 希望对大家有用! 管理员提示: 该程序能运行: Figure15.jpg
recommend-type

Unity绘制二维动态曲线

主要为大家详细介绍了Unity绘制二维动态曲线,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
recommend-type

matlab二维曲线绘制小结

简单小结了matlab绘制二维曲线的常用指令,主要是plot指令及其参数选择,适合查询用,优点简单,但绘制一般曲线应当没有问题,不喜勿下。
recommend-type

zigbee-cluster-library-specification

最新的zigbee-cluster-library-specification说明文档。
recommend-type

管理建模和仿真的文件

管理Boualem Benatallah引用此版本:布阿利姆·贝纳塔拉。管理建模和仿真。约瑟夫-傅立叶大学-格勒诺布尔第一大学,1996年。法语。NNT:电话:00345357HAL ID:电话:00345357https://theses.hal.science/tel-003453572008年12月9日提交HAL是一个多学科的开放存取档案馆,用于存放和传播科学研究论文,无论它们是否被公开。论文可以来自法国或国外的教学和研究机构,也可以来自公共或私人研究中心。L’archive ouverte pluridisciplinaire
recommend-type

实现实时数据湖架构:Kafka与Hive集成

![实现实时数据湖架构:Kafka与Hive集成](https://img-blog.csdnimg.cn/img_convert/10eb2e6972b3b6086286fc64c0b3ee41.jpeg) # 1. 实时数据湖架构概述** 实时数据湖是一种现代数据管理架构,它允许企业以低延迟的方式收集、存储和处理大量数据。与传统数据仓库不同,实时数据湖不依赖于预先定义的模式,而是采用灵活的架构,可以处理各种数据类型和格式。这种架构为企业提供了以下优势: - **实时洞察:**实时数据湖允许企业访问最新的数据,从而做出更明智的决策。 - **数据民主化:**实时数据湖使各种利益相关者都可
recommend-type

解释minorization-maximization (MM) algorithm,并给出matlab代码编写的例子

Minorization-maximization (MM) algorithm是一种常用的优化算法,用于求解非凸问题或含有约束的优化问题。该算法的基本思想是通过构造一个凸下界函数来逼近原问题,然后通过求解凸下界函数的最优解来逼近原问题的最优解。具体步骤如下: 1. 初始化参数 $\theta_0$,设 $k=0$; 2. 构造一个凸下界函数 $Q(\theta|\theta_k)$,使其满足 $Q(\theta_k|\theta_k)=f(\theta_k)$; 3. 求解 $Q(\theta|\theta_k)$ 的最优值 $\theta_{k+1}=\arg\min_\theta Q(
recommend-type

JSBSim Reference Manual

JSBSim参考手册,其中包含JSBSim简介,JSBSim配置文件xml的编写语法,编程手册以及一些应用实例等。其中有部分内容还没有写完,估计有生之年很难看到完整版了,但是内容还是很有参考价值的。