Drawing 4-sided polygons around objects

3 vues (au cours des 30 derniers jours)
Mohammad Abu-Haifa
Mohammad Abu-Haifa le 28 Oct 2020
Hello
I wrote a code to approximate each brick in this image into rectangles. However, some bricks in other images can't be approximated into rectangles due to the irregular shape
So, I need to draw a 4-sided polygon around each brick. Can any one help me?
Here is the rectangle's code:
clc; clear; close;
I = imread ('1.png');
figure, imshow(I);
IBW = imbinarize(rgb2gray(I));
[L, num ] = bwlabel(IBW);
bboxes = regionprops(L, 'BoundingBox');
figure, imshow(IBW);
hold on
for k=1 : length(bboxes)
curbb = bboxes(k). BoundingBox;
rectangle ('Position',[curbb(1),curbb(2),curbb(3),curbb(4)], 'EdgeColor','g', 'LineWidth', 1)
end
hold off

Réponses (1)

Matt J
Matt J le 28 Oct 2020
This will help to find the corners of the boxes.
Use the line() command instead of rectangle() to draw general quadrilaterals.
  2 commentaires
Mohammad Abu-Haifa
Mohammad Abu-Haifa le 28 Oct 2020
There is an error appers (Unrecognized function or variable 'pgonCorners').
Mohammad Abu-Haifa
Mohammad Abu-Haifa le 28 Oct 2020
can you please write the final code based on the information presented in my code in the question?

Connectez-vous pour commenter.

Community Treasure Hunt

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

Start Hunting!

Translated by