I want to use morphology operator for filling holes of a 3d image. The 3d image consists of 116 2-D image slices of the same size (512*512 pixels). I tried using imfill in Matlab for the 3d image but the result is not I want. One of the slices of the 3d input image(a) and the corresponding slice from the 3d output image(b) result of using imfill is shown here . The small holes are filled and other holes are not filled.

When I tried using imfill slice by slice the result is correct. Is there any way for filling holes in 3d images? How can I do this?

  • 1
    $\begingroup$ Unfortunately, we can't see your images. If you could provide a link, it would be very helpful. $\endgroup$
    – Dima
    Sep 12, 2013 at 21:29
  • $\begingroup$ Without seeing your image how we can suggest a appropriate method which work fine for you. please provide image if you can. $\endgroup$
    – Gujjar
    Jul 1, 2014 at 6:26

2 Answers 2


imfill would work with images and not volumes. However Matlab has many basic tools to fill the holes, that is to interpolate missing data points. What you are after is interpolation and Matlab has a function called interp3.


Without your image its very hard to suggest any method or solution for your problem. But anyway see my answer to another question may be it work for you. Link here



Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.