Additional properties from regionprops

8 次查看(过去 30 天)
Hi all,
I'm using regionprops to extract some properties from a watershed segmentation of polygonal objects in an image. It returns values for the centroid, area, and perimeter of each segmented polygon.
Does anyone know if there's a way to extract specific lengths of the sides of the polygons, rather than just their entire perimeters?
Looking forward to your suggestions!
Thanks!
Best,
Veena

采纳的回答

Adam Danz
Adam Danz 2020-3-9
You could also return the "ConvexHull" values which will return a p-by-2 matrix for each polygon where each row of the matrix contains the x- and y-coordinates of one vertex of the polygon. Then you could use pdist() to compute the length of each segment.
  5 个评论
Veena Chatti
Veena Chatti 2020-4-26
Thank you, I am sorry for my late response, but the regionprops convexhull seems to capture a lot of the shapes quite accurately. I needed to get back onto a computer to be able to try it out and let you know, but now that I have I see that this is indeed a good solution that captures these shapes well. Thanks again!
Image Analyst
Image Analyst 2020-4-27
Note: using the convex hull will only work for polygons or shapes that are convex. If you have any shapes that have any incursions into them, like a blob shaped like the letter F or H or Z etc., the convex hull will not work.

请先登录,再进行评论。

更多回答(1 个)

Image Analyst
Image Analyst 2020-3-10
You need to compute the boundary of each polygon with bwboundaries(). Then use findpeaks() to decide how many vertices there are. Then you can extract each "straight" segment from the boundary and do some kind of analysis on the shape of that "line". See my attached shape recognition demo to get you started.

类别

Help CenterFile Exchange 中查找有关 Image Segmentation and Analysis 的更多信息

产品


版本

R2019b

Community Treasure Hunt

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

Start Hunting!

Translated by