
islocalmax2: problems understanding 'MinProminence'
    6 次查看(过去 30 天)
  
       显示 更早的评论
    
I want to find local maxima in a 2D intensity image ("cell1.mat") and used the following strategy:
% load data
load('cell1.mat')
% edge preserving smoothing
ds = imbilatfilt(d, .01*(max(d(:))-min(d(:)))^2,10);
% find local max
[TF,P] = islocalmax2(ds,'MinProminence',2000,'MinSeparation',1,'ProminenceWindow',10);
myList = find(TF);
[row,col] = ind2sub(size(ds),myList);
The result can be visualized by
figure,
surf(dsz,'EdgeColor','none','FaceColor','interp'); 
colormap('jet')
hold on
for np=1:length(myList); 
  plot3(col(np),row(np),dsz(row(np),col(np)),'o','MarkerEdgeColor','b','MarkerFaceColor','none', 'MarkerSize',12); 
end
axis tight
Now I wonder why islocalmax2 found so many small peaks unless I set the 'MinProminence' option to 2000.
0 个评论
回答(2 个)
  Mathieu NOE
      
 2025-3-21
        hello 
just fyi I tried with this fex submission (and no smoothing )
result : (6 peaks)

code : 
load('cell1.mat')
d = double(d);
contourf(d)
colorbar
hold on 
[pks,locs_y,locs_x]=peaks2(d,'MinPeakHeight',max(d(:))*0.75,'Threshold',max(d(:))*0.02);
for k = 1:numel(pks)
plot(locs_x(k),locs_y(k),'r+','markersize',15);
end
1 个评论
  Mathieu NOE
      
 2025-3-21
				another basic alternative , extracting contour lines x,y coordinates and plotting the centroids 
load('cell1.mat')
d = double(d);
contourf(d,8)
colorbar
hold on 
% extract isoclines    
level = max(d(:))*0.75;
[C,h] = contour(d,level*[1 1]);
[m,n] = size(C);
ind = find(C(1,:)==level); % index of beginning of each isocline data in C
ind = [ind n+1]; % add end (+1) 
for k = 1:numel(ind)-1
    xc = C(1,ind(k)+1:ind(k+1)-1);
    yc = C(2,ind(k)+1:ind(k+1)-1);
    plot(xc,yc,'m');
    % centroid
    Xce = mean(xc);
    Yce = mean(yc);
    plot(Xce,Yce,'+r','markersize',15);
end
hold off
另请参阅
类别
				在 Help Center 和 File Exchange 中查找有关 Multirate Signal Processing 的更多信息
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!





