2
$\begingroup$

I am trying to visualise segmented anatomical models in 3D. Currently, my attemps are very basic, like the following code. What other ways could you come up with? ListSurfacePlot3D doesn't work that well. The files contain lines with the coordinates of each voxel (x,y,z).

ClearAll["Global`*"];

prop = Import[#, "Table"] & /@ {"http://leaf.dragonflybsd.org/~beket/skull.txt", 
"http://leaf.dragonflybsd.org/~beket/brainwhite.txt"};

genPoint[{x_, y_, z_}] := 
 Graphics3D[{FaceForm[Red], EdgeForm[], Lighting -> "Neutral", 
   Sphere[{x, y, z}, 1/5]}]

ParallelTable[
 Show[genPoint /@ prop[[k]], ViewPoint -> {1.3, 2.4, 2.}, ImageSize -> 300],
    {k, 1, Length@prop}]

A 3D segmented skull

$\endgroup$
9
  • 1
    $\begingroup$ What is the problem with the image you show and what kind of visualisation would you expect? Are you looking for surfaces instead of points, such as joining all outer points with surfaces? $\endgroup$
    – anderstood
    Commented Mar 15, 2017 at 16:02
  • $\begingroup$ Yes, a surface joining all outer points would be very nice. ConvexHullMesh didn't cut it for me, because I lose the information of cavities. $\endgroup$
    – stathisk
    Commented Mar 15, 2017 at 16:02
  • 1
    $\begingroup$ I think that "finding the outer points of a list of points defining a non-convex volume" is an interesting question in itself. If that's really what you want, you should probably rephrase the question as such. In that case, somehow related questions: mathematica.stackexchange.com/questions/89725/… and mathematica.stackexchange.com/questions/2998/…. $\endgroup$
    – anderstood
    Commented Mar 15, 2017 at 16:15
  • $\begingroup$ Thank you for the references @anderstood! I'll study them and come back again. $\endgroup$
    – stathisk
    Commented Mar 15, 2017 at 16:18
  • 2
    $\begingroup$ Just a head's up, you can get decent visualizations with Entity["AnatomicalStructure", "Skull"]["MeshRegion"] and Entity["AnatomicalStructure", "Skull"]["Graphics3D"] $\endgroup$
    – Jason B.
    Commented Mar 15, 2017 at 16:25

1 Answer 1

0
$\begingroup$

Why not use Mathematica's curated data instead?

Entity["AnatomicalStructure","Skull"]["Graphics3D"]

enter image description here

$\endgroup$
1
  • 1
    $\begingroup$ David, the OP specified that they have to plot their own data set specifically, rather than a generic one. $\endgroup$
    – MarcoB
    Commented Mar 15, 2017 at 18:19

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