Creatin a Pore Size Distribution with an .stl file of a CT Scan of a tensile specimen

Hello there,

I am trying to isolate the pores in my .stl file of a tensile specimen. I figured, that i have to load the data as a “segmentation” into 3D Slicer. I also figured, how to change the amount of slices, such that i could mark every pore per hand. But that would take forever. So i tried out the “treshold” feature, but this doesn’t work. First, i cant change the treshould values and second, 3D Slicer seems to not be able to recognice the part at all. Instead of marking a part of the slice in the 4 sceens on the left, the hole screen is blinking in the predefined colour of the segmentation.
Sadly, i cant upload the .stl file …
I am using Mac OS Ventura 13.1 on a Macbook Air M2
I would appreciate it very much, if someone could assist me with this problem.
Here is a screenshot of my screen, when i use the treshold feauture:

Ok, i made progress. I scliced the .stl file into .tiff images and loaded them into Slicer. Now, the treshold values works really well with the part. But i cant change the treshold values, such that i only can select the pores…

You should be able to type values into the “Threshold Range” or to move the ends of the slider just below those numbers to change the threshold range. What happens when you try to do that?

1 Like

That’s exactly what i have tried and it worked out just fine. With the “island” effect, i created a segment for each pore. Then i looked into the statistics of the segments, e.g. volume, an found at, that the dimensions are not right.
Assuming, all pores are sphere-like pores, the volume-data leads to a mean radius of 2mm. But the thinnest part of the tensile specimen, the gauge-section, is just 1mm in diamater.
I checked the dimensions and found out, that the dimensions are 100x bigger, as they should be.

Regarding my first try, loading the .stl file into 3D Slicer as a segmentation, there was no such problem. But the treshold effect did not work.
Is there a solution, to make the treshold effect work, such that i dont have to worry about the dimensions?

If no one has a solution including me i will just devide the radii by a factor of 100.

I think .tiff images may not have dimensions included, and with no dimensional information, Slicer may assume that each voxel is a cubic 1 mm. If you know what the true voxel dimensions should be, you can enter them directly using the “Volumes” module, just open the “Volume Information” section, and enter the correct voxel dimensions.
image

If this is a one-off analysis, the procedure you’ve worked out is fine. If you will be doing this over and over again, then it will be more efficient to skip the tiff slicing step. You can load your STL, create an image volume which contains that same region in 3D space (at a voxel resolution of your choosing), create a segmentation based on that image volume, create a segment in that segmentation which corresponds to your part by importing from the STL model as the surface representation of the segment, and carry out your processing from there. It sounds like a lot of steps, but if you have some programming experience you could fully automate all of these steps fairly easily into a python Slicer module. That’s really only worth it if you have many of these to do, since it will take some time invested to implement, but if you see yourself doing similar sorts of processing in the future, learning how to do automate a workflow like this in Slicer could be well worth your time.

1 Like

This should work just importing the STL as a segmentation as you did. When you go to threshold the pores or basically everything that is not your STL, select “Outside all Segments” as the editable area.

Then you can use the Islands tool to Remove the “box” which is outside your STL (assuming the pores do not connect to the outside.

You should then be left with the inside pores that do not connect to the outside.