该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

function e2md = e2md( input_args )%——————本函数输入一灰度图象,输出该图象的2维EMD结果imf1 imf2 im3%——————二维插值use Delaunay triangulation and then cubic interpolation%——————input_args为图象路径

[X,map]=imread('image1.bmp');%X为原始图象 XMAX为极大值图象,非极大值处值为0 XMIN 为极小值图象,非极小值处值为255

C=double(X);

X=double(X);x_widthtrue=size(X,1);%-----复制图象,延拓100行(列)%---上下各做延拓for i=1:100 X=[X(2*i+1,:);X];endfor i=1:100 X=[X;X(x_widthtrue+101-i,:)];end%---上下延拓完毕,将做左右延拓for i=1:100 X=[X(:,2*i+1),X];endfor i=1:100 X=[X,X(:,x_widthtrue+101-i)];end%---上下延拓完毕%-----复制图象

I=X; %I描述原图象的双精度形式orig=X;orig=double(orig); %orig描述原图象的双精度形式,用来在筛分结束的时候表示残差%————————————————————————————————x_width=size(X,1); %x_width表示延拓之后图象的大小(长=宽)%***************************************************************for imfcount=1:3%for#01 % NL=NL_num+imfcount^2; X=orig; count=0; SD=100;%SD初始化while(SD>0.3)%while#01%————————————————————————搜索极值:1——————%————————建立极值图象 极大值图象XMAX 极小值图象XMIN—————XMAX=X;XMAX=X;%————————End:建立极值图象 极大值图象XMAX 极小值图象XMIN———count=count+1;xl_max=[]; %极大值3行matrix,第一二三行分别为行数列数和灰度值xl_min=[]; %极小值3行matrix,第一二三行分别为行数列数和灰度值 %这样有利于构造包络for i=2:x_width-1 for j=2:x_width-1 if(X(i,j)>X(i-1,j))&(X(i,j)>X(i+1,j))&(X(i,j)>X(i-1,j+1))&(X(i,j)>X(i+1,j+1))&(X(i,j)>X(i,j+1))&(X(i,j)>X(i-1,j-1))&(X(i,j)>X(i+1,j-1))&(X(i,j)>X(i,j-1)) XMAX(i,j)=X(i,j); else XMAX(i,j)=-500; end if(X(i,j)

for i=2:x_width-1 for j=2:x_width-1 if(XMAX(i,j)~=-500) xl_max=[xl_max,[i;j;X(i,j)]]; end if(XMIN(i,j)~=500) xl_min=[xl_min,[i;j;X(i,j)]]; end endend%——————————————————————End:搜索极值:2——————%————————————————End:用NL的值来进行极值的筛选————

%——————————————————————构造上下包络——————x=xl_max(1,:);y=xl_max(2,:);z=xl_max(3,:);ti=1:1:x_width;[xi yi]=meshgrid(ti,ti);zi_max=griddata(y,x,z,xi,yi,'cubic'); %对极大值点进行插值 %x,y为极值点的坐标,z为该处灰度的值, %zi显示插值结果,是一个width*width 的matrixx=xl_min(1,:);y=xl_min(2,:);z=xl_min(3,:);ti=1:1:x_width;[xi yi]=meshgrid(ti,ti);zi_min=griddata(y,x,z,xi,yi,'cubic'); %对极大值点进行插值 %x,y为极值点的坐标,z为该处灰度的值, %zi显示插值结果,是一个width*width 的matrix%————————————————————End:构造上下包络——————zi=(zi_max+zi_min)/2; %求得均值包络SD=max(abs(zi(101:x_widthtrue+100,101:x_widthtrue+100)))/max(abs(orig(101:x_widthtrue+100,101:x_widthtrue+100)));X=X-zi; %将图象减去均值包络end%while#01减均值的过程imf=X;if(imfcount==1) imf1=imf(101:x_widthtrue+100,101:x_widthtrue+100); else if (imfcount==2) imf2=imf(101:x_widthtrue+100,101:x_widthtrue+100); else if(imfcount==3) imf3=imf(101:x_widthtrue+100,101:x_widthtrue+100); else if(imfcount==4) imf4=imf(101:x_widthtrue+100,101:x_widthtrue+100); else imf5=imf(101:x_widthtrue+100,101:x_widthtrue+100); end end endendorig=orig-imf;end%for#01得到IMF个数%————————————————以上得到IMF1和IMF2%********************************************************************%★★★★★在这里设置breakpoint可以得到imf1、imf2、orig(残差)★★★★★★

function isitn = isitn( input_args2,isitn_n )%判断input_args2中的值是否全为isitn_n,是则返回0,否则返回1isitn=0;size_input_args2=size(input_args2,1);for i_isitn=1:size_input_args2 for j_isitn=1:size_input_args2 if (input_args2(i_isitn,j_isitn)~=isitn_n)&(i_isitn~=(floor(size_input_args2/2)+1))&(j_isitn~=(floor(size_input_args2/2)+1)) isitn=1; end endend

function puguji=puguji(fxxm,m)%p为阶数,初始化为原始数据列的列数%m表示向后预测的数据的个数%fxxm为原始信号p=size(fxxm,2);for j=1:m%m表示向后预测m个 a=lpc(fxxm,p+j-1); fxxm(p+j)=0; for i=1:(p+j-1) fxxm(p+j)=fxxm(p+j)-fxxm(p-i+j)*a(i+1); endendpuguji=fxxm;

function puguji2=puguji2(fxxm,m)%p为阶数,初始化为原始数据列的列数%m表示向后预测的数据的个数%fxxm为原始信号p=size(fxxm,2);fxxm=fxxm(end:-1:1);for j=1:m%m表示向后预测m个 a=lpc(fxxm,p+j-1); fxxm(p+j)=0; for i=1:(p+j-1) fxxm(p+j)=fxxm(p+j)-fxxm(p-i+j)*a(i+1); endendfxxm=fxxm(end:-1:1);puguji2=fxxm;

错误提示: >> e2md2Error using vertcatDimensions of matrices being concatenated are notconsistent.

Error in e2md2 (line 19) X=[X(2*i+1,:);X];

emd matlab 图像处理,二维EMD分解处理图像相关推荐

  1. Matlab把二维矩阵画成三维图像

    clear;clc;close all %每个代码都会有的清空数据 Velocity = importdata('速度文件.txt'); %读取数据,是个向量 Velocity=reshape(Vel ...

  2. MATLAB编程(4)——MATLAB绘制二维高斯函数的三维图

    本篇博文记录使用MATLAB绘制二维高斯函数的三维图. 用到的MATLAB函数--mesh()(绘制三维线框图)和surf()(绘制三维表面图). MATLAB命令窗口输入>> doc 函 ...

  3. matlab生成二维服从高斯分布的数据

    matlab生成二维服从高斯分布的数据 2015-12-30 21:31 1263人阅读 评论(0) 收藏 举报  分类: matlab(8)  由于实验需要,需要生成两类模式的数据,同时这两类数据要 ...

  4. matlab绘制二维曲线图

    matlab绘制二维曲线图 今天,我们来讲一个用matlab绘制二维曲线图 下面直接上代码,会对代码一些部分进行一些讲解 %% 定义函数 x = 0:0.01:2*pi; y1 = sin(x); y ...

  5. 如何将二维码分解成链接?二维码解码在线怎么操作?

    有些时候,我们可以从一些二维码中,扫码获取到一个网页或者打开一个链接,那么当我们想要从电脑上查看这些内容的时候,该怎样操作才能获取二维码的网址链接呢?想要分解二维码那么可以使用二维码解码器来处理,下面 ...

  6. MATLAB绘制二维曲线-fplot函数

    MATLAB绘制二维曲线-fplot函数 fplot函数的基本用法 双输入函数参数的用法 fplot函数的基本用法 fplot(f,lims,选项) f代表一个函数,通常使用函数句柄的形式,lims为 ...

  7. Matlab:二维傅里叶变换

    Matlab:二维傅里叶变换 二维傅里叶变换 二维衍射模式 fft2 函数将二维数据变换为频率空间.例如,您可以变换二维光学掩膜以揭示其衍射模式. 二维傅里叶变换 以下公式定义 m×n 矩阵 X 的离 ...

  8. 利用Matlab 解决二维矩阵问题

    写在前面 Matlab是一款非常强大的数学计算工具,学习并使用它进行处理一些数据运算,将会非常之高效. 今天有同学问我了一道关于利用Matlab 解决二维矩阵问题,利用空闲时间给他解答,希望能帮助到他 ...

  9. matlab 极坐标 二维,matlab笔记二维绘图(极坐标隐函数等)008.docx

    matlab笔记二维绘图(极坐标隐函数等)008.docx 008二维绘图(极坐标.隐函数等)一.极坐标图形调用格式为POLART,R,'选项'其中,T为极角,R为极径,选项的使用和PLOT类似.例1 ...

最新文章

  1. 设计模式 之美 -- 工厂方法模式
  2. 2018秋寒假作业6—PTA编程总结3
  3. NET中的异步编程(二)- 传统的异步编程
  4. 用户名登陆的两种格式
  5. JVM调优:CMS的执行过程及存在的问题
  6. leetcode-21-合并两个有序链表
  7. iOS之给WebView导航栏添加“返回”与“关闭”按钮
  8. Java中如何实现线程的超时中断
  9. 有名管道和无名管道的区别
  10. iTOP-4418开发板支持动态调频,AXP228电源管理,预留锂电池接口,内置充放电电路及电量计...
  11. HTML(1)--- HTML5教程
  12. 微信“欲封”百度;AI 主播入职新华社;今日头条遭狠罚 | 极客头条
  13. java判断那个时间更晚_如何用Java判断日期是早于还是晚于另一个日期
  14. 计算机毕设选题可以选什么?计算机本科毕业设计选题2023年指南
  15. python 爬虫 美女_使用Python爬虫爬取网络美女图片
  16. Excel数据分析—折线图
  17. The7 v.10.2.0-中文汉化主题/可视化拖拽编辑的WordPress主题企业外贸商城网站模板
  18. 金山毒霸2002界面
  19. 【舞女编程语言】:Ballerina 最新版和Ballerina Central
  20. panabit高级流控

热门文章

  1. python新手学习记录笔的控制7,成果(使用python画小黄人)
  2. 数据库管理系统设计Java源代码_《数据库应用》课程设计人事管理系统(java源代码)...
  3. 基于python的小论文_基于Python的网上论坛的实现
  4. 10个最佳的人工智能开发框架和AI库
  5. 无人机目标跟踪与运动控制
  6. 4用计算机显示内存不足,必成电脑:解决电脑提示“内存不足”四种方法-电脑内存不足怎么办...
  7. FIR滤波器设计之窗函数法
  8. 关于3dsmax出现“应用程序无法正常启动0xc000007b”的解决方案
  9. vue 搜索文本让搜索的字体高亮显示
  10. 随机数生成及微信红包