Bounding box width and Y coordinate in image processing
6 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
Soul Keeper
il 14 Mar 2016
Commentato: Soul Keeper
il 14 Mar 2016
Hi there can someone help with something...
I need to dete
ct the width of an object surrounded by a bounding box. I have the centroid for it and i need to calculate at first the distance between the centroid and the left side of the box(and put this in a variable); and then the width between the centroid and the right hand side of the box(a new variable). after that i can calculate the width of the whole object buy doing a sum between both variables. i need to do it this way - don't ask why cuz I don't know either. I have attached a photo maybe you will understand better

this is what i have so far in terms of coding
prop = regionprops(imgFill);
hold on
for n=1:length(prop)
rectangle('Position',prop(n).BoundingBox,'EdgeColor','b','LineWidth',2);
x = prop(n).Centroid(1);
y = prop(n).Centroid(2);
plot(x,y);
end
hold off
0 Commenti
Risposta accettata
Image Analyst
il 14 Mar 2016
Try this:
props = regionprops(imgFill, 'Centroid', 'BoundingBox');
hold on
for k=1:length(props)
thisCentroid = props(k).Centroid;
thisBoundingBox = props(k).BoundingBox;
rectangle('Position',props(k).BoundingBox,'EdgeColor','b','LineWidth',2);
x = prop(k).Centroid(1);
y = prop(k).Centroid(2);
plot(x, y, 'r+', 'MarkerSize', 13, 'LineWidth', 2);
% Find the left edge and right edge of the bounding box.
leftColumn = thisBoundingBox(1) + 0.5;
rightColumn = thisBoundingBox(1) - 0.5;
% Find the distance of them to the centroid.
leftDistance(k) = x - leftColumn
rightDistance(k) = rightColumn - x
% Plot a line between them
line([leftColumn, rightColumn], [y, y], 'Color', 'g');
end
hold off
6 Commenti
Più risposte (0)
Vedere anche
Categorie
Scopri di più su Surfaces, Volumes, and Polygons in Help Center e File Exchange
Prodotti
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!