Mathematica中文论坛-非官方

标题: matlab 3D数据,找峰值。儿子的papa,豆粑粑 [打印本页]

作者: meatball1982    时间: 2016-7-7 11:33
标题: matlab 3D数据,找峰值。儿子的papa,豆粑粑
2D数据,可以用findpeaks函数。
3D数据当中上,一个点,比它周围的8个点都大,它就是一个峰值。具体数据,这个判断条件可能不一样。具体分析,
例子是peaks函数,相对简单一些。
  1. clear all
  2. clc
  3. clf


  4. n=100;
  5. [x,y,z]=peaks(n);

  6. cen=[];
  7. for row= 2: n-1;
  8.     for col = 2: n-1;
  9.         p_cen=z(row,col);
  10.         p_nea=z(row-1:row+1,col-1:col+1);
  11.         val_big=p_cen-p_nea;
  12.         n_big=sum(val_big(:)>0);
  13.         if n_big>7;
  14.             cen=[cen;x(row,col),y(row,col),z(row,col)];
  15.         end
  16.     end
  17. end


  18. h=surf(x,y,z,'edgecolor','none');
  19. alpha(h,0.7);
  20. hold on
  21. plot3(cen(:,1),cen(:,2),cen(:,3),'ro','markersize',10,'markerfacecolor','r');
  22. view(0,90)
复制代码





peaks_top.jpg (76.25 KB, 下载次数: 893)

peaks_top.jpg





欢迎光临 Mathematica中文论坛-非官方 (http://ilovemathematica.com/) Powered by Discuz! X3.2