minimum distance between 2 objects
    7 visualizzazioni (ultimi 30 giorni)
  
       Mostra commenti meno recenti
    
    Walaa
 il 20 Nov 2022
  
    
    
    
    
    Risposto: Image Analyst
      
      
 il 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 Commenti
Risposta accettata
  Walter Roberson
      
      
 il 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 Commenti
Più risposte (1)
  Image Analyst
      
      
 il 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 Commenti
Vedere anche
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!


