distance between several objects in binary image

Does anyone know how can I find distance between these three animals from each other in a binary image (distance between each two red points)?

 Accepted Answer

I already gave code for something almost identical to that here.

6 Comments

All right, attached is a more general purpose one that works with multiple blobs to find all closest distance pairs.
How can i get this result using thermal image?
What result? Is that image the "result" you want to get? Or is that your thermal image and you want to find the distance between each hot spot? Please use more words to describe exactly what you want. And it's best to start your own new question on this.
i already asked in the question and mentioned you, if you could find it. Yes exactly i want to use the thermal image to find the distance between the each of hot spots.
@Faiz Yusoff I already answered this in another post of yours.
noted thank you so much!

Sign in to comment.

More Answers (1)

sir, may be use the follow code
clc; clear all; close all;
img=imread('image.jpeg');
J = rgb2lab(img);
a = mat2gray(J(:,:,2));
bw = im2bw(a, graythresh(a));
bw = imclose(bw, strel('disk', 5));
stats = regionprops(bw);
cens = cat(1, stats.Centroid);
figure;
imshow(img);
hold on;
plot(cens(:,1), cens(:,2), 'co', 'MarkerFaceColor', 'c');
dis_m = [];
for i = 1 : size(cens, 1)
pti = cens(i,:);
if i > size(cens, 1)/2+1
continue;
end
for j = 1 : size(cens, 1)
if i == j
continue;
end
ptj = cens(j,:);
dis = norm(pti-ptj);
dis_m(i,j) = dis;
plot([pti(1) ptj(1)], [pti(2) ptj(2)], 'r--', 'LineWidth', 2);
text(mean([pti(1) ptj(1)]), mean([pti(2) ptj(2)]), sprintf('%.1f', dis), 'Color', 'm', 'FontSize', 15);
end
end

Asked:

Abo
on 1 Dec 2014

Commented:

on 20 Feb 2021

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!