
islocalmax2: problems understanding 'MinProminence'
3 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
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 commentaires
Réponses (2)
Mathieu NOE
le 21 Mar 2025
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 commentaire
Mathieu NOE
le 21 Mar 2025
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
Voir également
Catégories
En savoir plus sur Multirate Signal Processing dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!



