How to find number of holes in each connected component?

5 次查看(过去 30 天)
hi i'm new in matlab. I want to find the number of holes in each connected component prior to hole filling. I know the euler number that returns the number of holes in an image as a whole, but i want to find the number of holes in each connected component individually. any help would be appreciated.

采纳的回答

Image Analyst
Image Analyst 2016-5-10
No it doesn't do the whole image. It does it on a blob by blob basis. Just check out regionprops(). The Euler number is just like any other blob-specific measurement you can ask it to make.
  2 个评论
Ayesha ch
Ayesha ch 2016-5-22
Thankyou so much for the help.I'm using:
n=bwconncomp(S);
h=regionprops(n,'Eulernumber');
Here 'h.EulerNumber' returns 1, -1 and 0 value. I was expecting the actual number of holes, like 10,12 etc. Could you please explain what is meant by 1 and -1? Thankyou.
Image Analyst
Image Analyst 2016-5-22
"Returns a scalar that specifies the number of objects in the region minus the number of holes in those objects."
Normally the number of objects in the region is 1. So a solid object would have an Euler number of 1. An object with 1 hole would have an Euler number of 0. An object with 2 holes would have an Euler number of -1.
I see only one object in your image with more than 1 or 2 holes, are you expecting those numbers for more than one or two blobs?

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Camera Calibration 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by