problem filling a contour

Hello,
I have a problem. I have an image (a masc) which has a hole. I detect de contour of the masc and I use "fill" to fill with a colour. My problem is that the hole is also painted and I don't want that.
Is there any option to avoid filling the holes? Thanks
Silvia

Antworten (1)

Image Analyst
Image Analyst am 20 Nov. 2013

0 Stimmen

If you have the coordinates of the contour, you can use poly2mask() to create binary images. For nested contours, you might have to call it twice, then subtract the binary image from the inner "hole" from the larger outer mask to make the hole zero and the torus 1.

2 Kommentare

Silvia
Silvia am 21 Nov. 2013
Hello,
In fact I already have my mask with the hole inside. What I want to do is this: I have the mask and I have obtained the outside contour and the hole contour so I have two contours. Then, I want to fill of a color the area between these two contours.
I need help because I use the function "fill" and it fills with a colour all inside the outside contour (included the hole), I don't want the hole appears coloured.
Thanks
You need to get the hole iteself. So invert the mask of the donut, call imclearborder() and then assign:
holeMask = imclearborder(!binaryMask);
grayImage(holeMask) = whateverIntensityYouWant;

Melden Sie sich an, um zu kommentieren.

Gefragt:

am 20 Nov. 2013

Kommentiert:

am 21 Nov. 2013

Community Treasure Hunt

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

Start Hunting!

Translated by