Calculating the distance between patches
3 次查看(过去 30 天)
显示 更早的评论
Is there a way in MATLAB to calculate the distance between patches of two images?
Thanks.
2 个评论
Image Analyst
2013-11-29
Which distance? The Hausdrof distance, distance between closest vertices, or distance between centroids?
回答(1 个)
Image Analyst
2013-11-29
If you know the vertices, you can calculate centroid and the Hausdorf distance from formulas you can find on the web. For a 3x3 rectangular array, the centroid is obviously at the middle element. For arbitrary polygons, it seems not so straightforward: https://en.wikipedia.org/wiki/Centroid#Locating_the_centroid but you can use regionprops() to compute the centroid, if you want to create an image out of the vertices with poly2mask().
2 个评论
Image Analyst
2013-11-29
I don't have pdist(). See my image segmentation tutorial for how you can get centroids: http://www.mathworks.com/matlabcentral/fileexchange/?term=authorid%3A31862 Once you have the centroid, you can plug into norm(), hypot(), or pdist(), or the Pythagorean theorem to get the Euclidean distance.
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!