Skip to main content

import - How do I convert imported STL files to 3D images?


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"]

spikey


img3Dify[spikey, 40]

spikey as Image3D


Comments