After importing a 3D image in STL format, my possibilities in regard to "3D Volumetric Image Processing" seem rather limited. All examples are given with TIFF files. Is there a way to convert from STL to TIFF or work with an STL image in some other way?
Answer
Here is something quick and dirty to convert from a Graphics3D
to Image3D
(the second argument is sort of a quality knob, the higher the number the more slices are taken):
img3Dify[gr3d_Graphics3D, qu_] := Module[{pr, br, slices},
pr = PlotRange /. AbsoluteOptions[gr3d, PlotRange];
br = Map[Norm@Differences[#] &, pr];
slices = ParallelMap[
Image[Show[gr3d, ViewPoint -> Top,
Lighting -> {{"Ambient", White}}, Background -> None,
PlotRange -> {pr[[1]], pr[[2]], #}]] &,
Partition[FindDivisions[pr[[3]], qu*2], 2, 1]];
Image3D[slices, BoxRatios -> br, ColorFunction -> Hue]]
on an example image
spikey = Import["ExampleData/spikey.stl", "Graphics3D"]
img3Dify[spikey, 40]
Comments
Post a Comment