minimum distance between 2 objects
4 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Walaa
le 20 Nov 2022
Réponse apportée : Image Analyst
le 20 Nov 2022
I plotted boundries with bwboundries and smoothed them with the sgolay filter then plotted these boundries over RGB image. Could you kindly help me in finding the shortest distance between these two boundaries (the shortest distance of the area in-between the red and yellow lines)?
0 commentaires
Réponse acceptée
Walter Roberson
le 20 Nov 2022
Trace the boundaries of the two objects. https://www.mathworks.com/help/images/boundary-tracing-in-images.html
Then with the coordinates of each point for each of the two objects, use pdist2() and then min()
If you do not have Statistics and Machine Learning Toolbox for pdist2() you can use
D = sqrt((x1(:) - x2(:).').^2 + (y1(:) - y2(:).').^2);
0 commentaires
Plus de réponses (1)
Image Analyst
le 20 Nov 2022
If xy is an N by 2 array of (x,y) coordinates, then (untested)
allDistances = pdist2(xy1, xy2);
minDistance = min(allDistances(:))
% Find index of closest pair
[row, column] = find(allDistances == minDistance);
% Draw a line between them
x1 = xy1(row, 1);
y1 = xy1(row, 2);
x2 = xy2(col, 1);
y2 = xy2(col, 2);
hold on;
line([x1, x2], [y1, y2], 'LineWidth', 2, 'Color', 'b')
0 commentaires
Voir également
Catégories
En savoir plus sur Surface and Mesh Plots 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!