help with 3D image processing (conversion from alphashape to binary image)
14 ビュー (過去 30 日間)
Hello everyone, since some days I'm try to solve a problem about image processing that is blocking my project.
I'm working with 3D binary images of a micro CTscan (these images are very fragmented and full of noise). I need do interpolate the external boundaries of my 3D binary image in order to avoid all the holes and cavities (made by trabeculas) that are inside my volume. I didn't use any smooth,smooth3 function because I don't want my images to get worst. What I've done is: I used alphaShape() function to create a bounding volume that envelops the set of my 3-D points and it worked well. The problem is that the image obtained is an 'AlphaShape' type and I don't know how to convert it back to a binary image, in order to make more operations on it. I tried using plot but again, the the image obtained is a 'Patch' type and I don't know how to go back to binary image. Here attached you can find the code: BWbm is the initial binary image. I also attached the image of the AlphaShape interpolation.
%With these 3 vectors I can applay alpha-shape that creates a bounding
%volume that envelops a set of 2-D or 3-D points.
%PROBLEM: how can I go back from tha alphaShape image to the binary image?
[x,y,z] = ind2sub(size(BWbm),find(BWbm == 1)); % trasform the 3D matrix in 3 vectors
z = double(z);
shp = alphaShape(x,y,z,5);
figure(4); patchimage=plot(shp); %'Patch type' image
Thanks in advance!
回答 (2 件)
Jyotish Robin 2018 年 3 月 23 日
You can create a binary 3D image by querying coordinates of the alphaShape for every voxel representing the 3D image.
The attached MATLAB script can be helpful.
Ce xiao 2020 年 1 月 8 日
I find the same problem with simone.
@ simone , Have you found a solution？
For me ,when I plot(shp),it's looks good. But when I use alphaSahpe to output volum.
The volume is disconnected.