![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/1518361/image.jpeg)
Finding a largest rectangular object in binary image with minimum length and width
8 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
How to find a largest rectangular object in binary image. Any connected object should be ignored. The object should have a minimum length of 50 pixels and minimum width of 4 pixels. The examples images are attached.
Thanks
6 commentaires
Walter Roberson
le 24 Oct 2023
When you indicated earlier that "Any connected object should be ignored" my understanding was that if you had rectangles that were connected to any other shape, that the entire blob should be ignored . That is why I coded regionprops to compare the convex area to the image area: those two values are only equal for blobs that are rectangles.
Réponses (1)
Walter Roberson
le 22 Oct 2023
P = regionprops(YourBinaryImage, 'Area', 'ConvexArea', 'BoundingBox');
PA = vertcat(P.Area);
PCA = vertcat(P.ConvexArea);
PBB = vertcat(P.BoundingBox);
PW = PBB(:,3);
PH = PBB(:,4);
mask = PA == PCA & PH >= 50 & PW >= 4;
selected_P = P(mask);
[largest_object_area, idx] = max([selected_P.Area]);
largest_BB = selected_P(idx).BoundingBox;
Note that here I am interpreting "width" as horizontal extent, and then by default that means "length" in your question must refer to vertical extent.
0 commentaires
Voir également
Produits
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!