2D数据,可以用findpeaks函数。
3D数据当中上,一个点,比它周围的8个点都大,它就是一个峰值。具体数据,这个判断条件可能不一样。具体分析,
例子是peaks函数,相对简单一些。
- clear all
- clc
- clf
- n=100;
- [x,y,z]=peaks(n);
- cen=[];
- for row= 2: n-1;
- for col = 2: n-1;
- p_cen=z(row,col);
- p_nea=z(row-1:row+1,col-1:col+1);
- val_big=p_cen-p_nea;
- n_big=sum(val_big(:)>0);
- if n_big>7;
- cen=[cen;x(row,col),y(row,col),z(row,col)];
- end
- end
- end
- h=surf(x,y,z,'edgecolor','none');
- alpha(h,0.7);
- hold on
- plot3(cen(:,1),cen(:,2),cen(:,3),'ro','markersize',10,'markerfacecolor','r');
- view(0,90)
复制代码
|