how to obtain tetrahedral mesh of multi-labeled medical image?

99 views
Skip to first unread message

Konstantinos Mountris

unread,
Mar 11, 2015, 3:58:48 PM3/11/15
to iso2mes...@googlegroups.com
Hello, I am new to iso2mesh and I just had test the main meshing functions. For my research i want to work with mesh a segmented volume of a prostate and i work with mask volumes (labels) however i need to create specific thin areas (one pixel thickness) regions which i want to specify as different domains of the mesh to apply later different properties in the analysis.
Using the basic functions I cant maintain these specified regions in my mesh.
Could somebody help me with my problem?

I have attached an image of the prostate with labeled areas in 2 planes. The white corresponds to value 2 and the gray to value 1.

Thank you in advance,
Konstantinos.
SceneView2.png
Screenshot1.png

Qianqian Fang

unread,
Mar 16, 2015, 2:23:36 PM3/16/15
to iso2mes...@googlegroups.com
hi Konstantinos

sorry for the delay. have been overwhelmed by a bunch of
deadlines.

regarding your question, yes, you can use iso2mesh to mesh
multi-labeled volume. You can simply throw your volume in v2m
or vol2mesh() using the 'cgalmesh' or 'cgalsurf' as the method
option, the volume will be converted to a tetrahedral mesh.

do be aware that, when the feature size is very small, you
need to set opt.distbound to a small value in order to avoid
aggressive simplification of the inclusions.

on the other hand, if you know the inclusions are cylinders in shape,
and do not intersect the outer surface, you can model them much
more precisely by generating and placing tetrahedral meshes of
cylinders into the domain. The outline of the code is shown below
(replace the .... in each function call with your own parameters)

% assuming your multi-label volume is img
% extracting the outer surface mesh
[no_outer, fc_outer]=v2s(img>0, ....);

% create a tall cylinder centered at [0 0 0]
[no_cyl, fc_cyl]=meshacylinder(c0,c1,1, ....);

% define the centers of each embedded cylinder
cyl_center
=[ox1,oy1,oz1;   ox2,oy2,oz2;  ....];

% copy the cylinder to each center location, and merge with the outer surface
[no_all, fc_all]=mergemesh(no_outer, fc_outer, ...
     no_cyl+repmat(cyl_center(1,:),size(no_cyl,1),1), fc_cyl , ...
     no_cyl+repmat(cyl_center(2,:),size(no_cyl,1),1), fc_cyl , ...
     no_cyl+repmat(cyl_center(3,:),size(no_cyl,1),1), fc_cyl , ...
     ....
);

% create tetrahedral mesh using the merged surface
[node,elem]=s2m(no_all,fc_all, 1, 50, cylinder_centers);

% plot the result
plotmesh(node,elem);

try the above outline. determine your parameters based on
your image. if you have difficulties, feel free to send me your
sample image.

Qianqian


Thank you in advance,
Konstantinos.
--
You received this message because you are subscribed to the Google Groups "iso2mesh-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to iso2mesh-user...@googlegroups.com.
To post to this group, send email to iso2mes...@googlegroups.com.
Visit this group at http://groups.google.com/group/iso2mesh-users.
For more options, visit https://groups.google.com/d/optout.

The information in this e-mail is intended only for the person to whom it is
addressed. If you believe this e-mail was sent to you in error and the e-mail
contains patient information, please contact the Partners Compliance HelpLine at
http://www.partners.org/complianceline . If the e-mail was sent to you in error
but does not contain patient information, please contact the sender and properly
dispose of the e-mail.

Reply all
Reply to author
Forward
0 new messages