Azzera filtri
Azzera filtri

distance between several objects in binary image

2 visualizzazioni (ultimi 30 giorni)
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)?

Risposta accettata

Image Analyst
Image Analyst il 1 Dic 2014
I already gave code for something almost identical to that here.
  6 Commenti
Image Analyst
Image Analyst il 20 Feb 2021
@Faiz Yusoff I already answered this in another post of yours.

Accedi per commentare.

Più risposte (1)

yanqi liu
yanqi liu il 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

Categorie

Scopri di più su Image Processing Toolbox in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by