Filling objects that share a border

5 vues (au cours des 30 derniers jours)
alexius
alexius le 4 Sep 2013
Hi,
I have a question about filling in objects that share a border with the perimeter of an image.
Consider a case such as the one shown at: http://i43.tinypic.com/2nq9ua.jpg. If I run the imfill function to fill in the holes, I don’t get the five objects that touch the border of the image filled (I have pointed out the specific areas I am talking about, in this image: http://i41.tinypic.com/5afeo4.jpg).
Is there any strategy I could follow to fill holes in those areas that are outlined using the arrows?
Thanks in advance!

Réponse acceptée

Image Analyst
Image Analyst le 4 Sep 2013
Modifié(e) : Image Analyst le 5 Sep 2013
  1. Binarize and Invert the image: binaryImage = grayImage <128
  2. Call imfill(binaryImage, 'holes')
  3. call regionprops(binaryImage, 'BoundingBox') asking for bounding box
  4. Look at the 4 sides of all the bounding boxes looking for any objects that share any bounding box side coordinate.
Give it a shot.
  3 commentaires
alexius
alexius le 5 Sep 2013
thank you Image Analyst for the answer. I've tried the code, and get error..
Error in imfill (line 132)
mask = padarray(mask, ones(1,ndims(mask)), -Inf, 'both');
Error in padarray (line 51)
binaryImage = imfill(binaryImage, 'holes');
can you help me, I’m quite new to IPT.
alexius
alexius le 5 Sep 2013
I'm sorry. I forgot to change the folder and filename. Now the code works. Thank you Image Analyst. :D

Connectez-vous pour commenter.

Plus de réponses (1)

Anand
Anand le 6 Sep 2013
Steve Eddins just posted about this. Here's an alternative approach:

Catégories

En savoir plus sur Deep Learning Toolbox dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by