11
$\begingroup$

This is not directly a Blender question, as it could be solved otherwise, but I'd like to see whether experienced users would do this inside blender and how.

Let's assume I had access to various kinds of 3D scans like CT, MRI, OCT, etc. The overall goal is to extract some part from this scan and turn it into a simple and good looking mesh. A very easy example would be to extract the skeleton from a CT scan. In this case I could

  • do a bone segmentation in the CT volume because this works reasonably well
  • use the binarized volume data to calculate the surface mesh of the skeleton
  • import and simplify the mesh in Blender

Other problems are harder to tackle because tissue or organs might not be easily separate-able from its surrounding with image processing. However, an expert could easily do the segmentation manually or semi-automatic layer by layer.

Question: For these two problems, is there a preferred way about what should be done inside Blender and what not? Are there good tutorials about it?

The second problem is especially interesting since one could trace the structure layer by layer inside Blender, extruding each layer afterwards. However, this could be more tedious than simply doing the segmentation in the images and calculating the mesh like in the first case with e.g. marching cubes/tetrahedrons.

Note: I have see the related questions here, here and here but unfortunately they are only related and don't discuss how to turn a scan into a simple mesh.

$\endgroup$
  • $\begingroup$ I wouldn't, as I believe that this is beyond the scope of what Blender currently does (not saying that I wouldn't ever, just not currently). At this point in time, I would probably try to use meshlab, and get a mesh to import into Blender. Assuming that you are getting point data from your scan. If not, and all you're getting is slice by slice images, I would try to use python's OpenCV to do some edge detection, and plot points at that particular (assumed Z/Depth) position of the slices recognized edge(s), and then still go out to meshlab to get mesh faces. After that Blender here we come. $\endgroup$ – Rick Riggs Mar 16 '16 at 2:09
  • $\begingroup$ Your comment is unfortunately what I was afraid of. I'm already using meshlab, osirix and friends and I know of e.g. 3d slicer. I just wanted to ask, because I wasn't sure there is something I missed. Thanks for your long comment. If the question is out of scope, feel free to mark it so. $\endgroup$ – halirutan Mar 16 '16 at 2:31
  • $\begingroup$ I don't believe the question is out of scope as you intentioned to accomplish your task in Blender. I may be completely ignorant to something that exists in Blender now to accomplish this, and I'm personally glad you asked it. $\endgroup$ – Rick Riggs Mar 16 '16 at 2:42
  • $\begingroup$ Would it be possible to write an answer that explains what to do in Meshlab to get a usable mesh in Blender, or is that out of the scope of the SE? I come from the point of view that if part of the answer is about Blender, and being able to have a Blender-based workflow, it's not totally out of topic... $\endgroup$ – MicroMachine Mar 20 '16 at 8:18
  • 1
    $\begingroup$ Is this a 3d image scan and if so what file formate? $\endgroup$ – animationprofessor Aug 18 '16 at 4:47
1
$\begingroup$

This ENTIRELY depends on the kind of data you're working with.

If you're talking about physical or digitized images, then no Blender would not be the right solution. Blender doesn't have any kind of image-processing tools to generically discern 3D information from 2D images. I'm sure there are other tools that can do this.

If, however, the CT scanner is able to give volumetric data, I'd bet good chocolate that it's in a standard format like OBJ, PCD, or PNY. If THAT's the case, it'd be relatively trivial to import that data into Blender and make a model out of it. It might require pre-processing in MeshLab, but even that would be minimal.

If the CT data is in a volumetric format, you might be able to import it from "File -> Import..." if the related filetype is available.

$\endgroup$
1
$\begingroup$

The overall goal is to extract some part from this scan and turn it into a simple and good looking mesh

It depends what is a good looking mesh according to you: a mesh that that a same shape as the medical scan or a mesh with a good topology.

For a blender user, a good topology is very important is it will influence further modeling ( such as smooth of subsurf), UV mapping, Rendering time etc..

•import and simplify the mesh in Blender

What do you mean by simplify? Change the topology in order to have fewer points? or make the mesh to only have quads?

Other problems are harder to tackle because tissue or organs might not be easily separate-able

In the CT scan, for each point, do you have some kind of additional information, such as tissue density, that would help to separete organs?

Question: For these two problems, is there a preferred way about what should be done inside Blender and what not? Are there good tutorials about it?

One could see 2 options:

  1. Export the CT scan data in a format that can be import by blender.

  2. Convert the CT data, in the some data point file (with a defined referential point, 3D coordinates, tissue density) like .csv and then use a python scrypt to import it into blender.

$\endgroup$
0
$\begingroup$

I am not an expert but I am also interested in this question. What I have found is an open source program which can process dicom files.

Invesalius 3 (https://www.cti.gov.br/en/invesalius)

Here is a short tutorial which shows extracting a skull mesh from a mummy's CT scan and export to Blender for further processing. https://www.youtube.com/watch?v=LMdxKwfEkvg

I have been started to experimenting with it just lately, so I cannot help much more.(for Ubuntu you can use ppa:tfmoraes/invesalius-ppa , but you can find other download methods on site)

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.