help with 3D image processing (conversion from alphashape to binary image)

3 vues (au cours des 30 derniers jours)
simone poli
simone poli le 19 Mar 2018
Commenté : Ce xiao le 8 Jan 2020
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!

Réponses (2)

Jyotish Robin
Jyotish Robin le 23 Mar 2018
Hi Simone!
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.
Thanks,
Jyotish
  1 commentaire
simone poli
simone poli le 27 Mar 2018
Thanks for the answer! The problem is that the volume is not rebuilt omogenously but slice by slice and the image that I obtain is not the continuous volume I was wandering. Here attached you find the image that I obtained. As you can see is the dimension of the matrix are Ok (574x525x181)but the volume is disconnected. Suggestion on how should I do? This is the code I used:
I = alphaShape2im_fast(shp,[574/2 525/2 181/2],[size(BW,1),size(BW,2),size(BW,3)]);

Connectez-vous pour commenter.


Ce xiao
Ce xiao le 8 Jan 2020
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.
  1 commentaire
Ce xiao
Ce xiao le 8 Jan 2020
Ok I find the solution
Just change the value of r in alphaShape2im-fast

Connectez-vous pour commenter.

Catégories

En savoir plus sur 3-D Volumetric Image Processing 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