# distance between several objects in binary image

27 views (last 30 days)
Abo on 1 Dec 2014
Commented: Faiz Yusoff on 20 Feb 2021
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)?

Image Analyst on 1 Dec 2014
I already gave code for something almost identical to that here.
Faiz Yusoff on 20 Feb 2021
noted thank you so much!

yanqi liu on 20 Feb 2021
sir, may be use the follow code
clc; clear all; close all;
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