How to fill a hole for 3D image when the hole is not fully covered?
22 views (last 30 days)
Show older comments
Dongyu Liang
on 18 Feb 2021
Answered: Keerthana Chiruvolu
on 28 Feb 2021
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!
0 Comments
Accepted Answer
Keerthana Chiruvolu
on 28 Feb 2021
Hi,
You can use the bwmorph3() function to fill holes in the 3D image. Further, to measure the properpties of a 3D image use regionprops3() function.
0 Comments
More Answers (0)
See Also
Categories
Find more on 3-D Volumetric Image Processing 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!