I am very new with the 3D slicer, so my question might be so simple. Still, it is really appreciated if you could help me with it.
I have a DCOM data from CT of a bone (to say like femur). I am wondering how can I do the followings:
#1 I want a surface model of the bone to be created just only from the outer surface (without the inside of the bone to be considered). ONLY the outer surface
#2 How can I export a 3D model of that bone, representing the actual model of the bone? I don’t mind about the marrow inside the bone. just a solid model of the bone with the hollow inside will be great!
If the image quality is good enough then thresholding, smoothing, and inverted island removal may produce good enough results. See detailed description here: 2D/3D fill tool
If image quality is very low and/or bone density is low then you may need to use Grow from seeds effect (growing bone from seed regions), as described here: Bone segmentation to create 3D-printable STL
Exporting to 3D-printable STL file and many other tips are described in segmentation tutorials.
Thank you very much for your prompt reply! I will follow the instruction and information provided, and if I face any concerns, I will come back to you again.
I followed all the discussions you have had with the other regarding creating a 3D model of a bone, generating 3D mesh, and eventually importing into FEA.
I should, however, say that I am still a bit confused about the process for making the model. Actually it is very hard to do so and it leads to inaccurate results. For example, segment mesher extension generates inaccurate meshes. I need a 3D model of the long bone, however the segment mesher creates a block of meshes, NOT to create the meshes on the segment of the bone.
Can you please help me with this, or if there is any tutorial video for this? As I concluded from the discussion in that specific forum, it is a incapability of 3D slicer? Is it? In case I need to use other software such as Mimics (even though I need to pay for it) please advise.
Development of a new segmentation workflow for a certain bone image, acquired with a specific imaging protocol, for a specific application always takes some time and practice. If the generated mesh surface looks good then segmentation task has been successfully completed. You may post an screenshot of your segmentation if you are not sure if the quality is good enough and we may give advice on how to improve it.
By default a coarse mesh is generated so that you get result quickly. Increase
--scale parameter value in Advanced settings section to genereate a finer resolution mesh.
Cleaver generates a “background” mesh so that you can simulate embedding your structures in some material (soft tissue, etc). If you don’t need these mesh elements, then don’t use them. Each cell is assigned to a segment, specified by
labels cell attribute. You can use this attribute to assign material properties or remove parts of the mesh, etc.
There is no video tutorial for Segment Mesher, but it would be greatly appreciated if you created one about your workflow, once you’ve figured out everything. You can of course post any specific questions here.
It is not. 3D Slicer is very capable.
Use any tool that work for you. Probably segmentation tools of Slicer are better than of Mimics, but Mimics has probably more meshing options and direct exporters for FEA software. So, if you and all your users can afford to buy Mimics then of course, give it a try. You may also try to export surface meshes (in STL, PLY, etc. format) and let your FEA software generate the volumetric mesh.
Your detailed and one-by-one replies are greatly appreciated.
By the information provided, it seems a bit more understandable what steps I should follow right now.
I will proceed and have a try and hopefully after generating a successful result, I will make a video of it and will share it with you for further training program.
As I have been working with CAD+FEA for a long time, it seems that 3D slicer does not generate a 3D geometry (I mean a format file like STP or STEP) to be just a 3D model (not meshes). If it was a 3D model it could be imported into CAD for further modification. Therefore as I understand from your comments, 3D slicer generates meshes on the parts (such as bone for my case), and from the meshes I will be able to start my simulation in FEA.
Since 3D geometry, 3D model, mesh, part, solid are used for completely different things in different domains (3D modeling, FEA, medical image computing), and even in different software, but probably your understanding is correct.
Slicer’s Segment Mesher extension creates a volumetric mesh consisting of tetrahedral and wedge elements, ready for FEA analysis.
Mesh editing of surface or volumetric meshes in CAD software is of course a very common need, too. However, most software cannot easily reverse engineer arbitrary meshes into editable representations - there are significant limitations, such as maximum number of points, complexity of the surface, quality of the mesh.
It would be great to hear from you if you were able to use the volumetric mesh that Segment Mesher extension generated.
Thanks again dear Andras. I will start again to generate the meshes from the comments you have mentioned so far, and I let you know then. Probably it takes a bit of time, since I would like to try everything with enough details and with importing the model into FEA and running some simulation.
I hope that I will be able to produce good results as I expected.
As you mentioned I tried to generate the meshes on the long bone. Since my region of interest is ONLY the bone, I merely used TetGen in the “Meshing method” appeared in the inputs of segment mesher extension. Because as you highlighted Cleaver generates a mesh for background, which I am not interested in.
However, when I click on the TetGen and then apply, it comes to an error.
This is the step-by-step workflow I am doing:
- Loading the DICOM Files
- Volume Rendering for selecting the boundaries of ROI
- Cropp Volume and then apply
- Segment Editor, add, selecting a threshold and apply, Using Scissors for removing some regions on the 3D view
- Segment Mesher Extension, Input segmentation: Segmentation, Meshing method: TetGen, Output Model: create a new model, and then apply
However, as I said it comes to an error. It says A self-intersection was detected. Program stopped.
Hint: use -d option to detect all self-intersections.
I have uploaded a screenshot of the segmentation. Can you please help me through this and hopefully once it comes to a successful model, I will create a video tutorial-based for this forum future use.
Additionally, how I am able to remove/delete the background meshes? And also, do I need to use label in the Editor module for labeling a bone? (using the yellow one?)
TetGen: Unfortunately, TetGen is known not to be very robust. You may try to adjust meshing parameters.
Cleaver2: The background mesh should not be a problem. Each cell contains ID of the segment, so you can use vtkThreshold filter to extract cells corresponding to a specific material (see this example).
Following a great deal of time and put significant effort along with several trial and error, eventually I have generated a 3D model from the DICOM files, which can be imported into any CAD software as I eventually end up with a STP file format. This facilitates importing the 3D model into any sort of FEA packages as well. I would like to mention that it requires using other software such as spacecliam simultaneously with 3D slicer. I am going to make a video from it and share with you and your team, since this has been asked numerous times and it might add value to the forum.
Sounds great, thank you! Looking forward to seeing your tutorial.
Thank you Saeed for the effort! The video tutorial will indeed be much appreciated!
Looking forward to your exellent video!
Where can I find this video ?