MATLAB Answers

distance between several objects in binary image

41 views (last 30 days)
Abo
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)?

Accepted Answer

Image Analyst
Image Analyst on 1 Dec 2014
I already gave code for something almost identical to that here.
  6 Comments

Sign in to comment.

More Answers (1)

yanqi liu
yanqi liu on 20 Feb 2021
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

Community Treasure Hunt

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

Start Hunting!