How to fill a hole for 3D image when the hole is not fully covered?
Show older comments
Hi,
I have generated some 3d structure of few particles based on 3D binary images. These particles have multiples holes insides and I want to fill all the holes so the particles will be totally solid. Now I can get porosity by using 1-((volume before filling the hole)/(volume after filling the hole)). however, some of holes are not fully covered due do cracks on the particle surface. For the small uncovered holes, I can use imclose first and then imfill to fill the hole without changing particle shape too much. But for the large holes, I have to make radius for imclose very large to cover the hole for imfill to fill. In this case, the particle volume changes a lot and affect the accuracy for porosity calculation. Another problem is I have to manually set up the radius for imclose for each particle since they have different hole size.
So, I am thinking about to use bwconvhull which seems working good for 2D image to fill the big hole and no parameters to set up. But this function is only working for 2D, I am wondering is there similar function for 3D image?
Another thought is there any fucntions can detect if the hole is fully covered or if there is no cracks on the solid surface? If so, maybe I can set up a iteration to automatically increase the radius of imclose until it can make large holes be covered.
Thanks!
Accepted Answer
More Answers (0)
Categories
Find more on Lighting, Transparency, and Shading in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!