| Authors: |
Bartłomiej Grychtol
|
|---|---|
| Date: | 2024
|
| Brief Description: |
High density smooth triangulated organ surfaces of the human torso
derived from the
BodyParts3D
database by The Database Center for Life Science.
This is a copy of a dataset published on Zenodo , packaged as EIDORS-compatible meshes. Data were published as
|
| License: |
Creative Commons Attribution-ShareAlike 2.1 Japan
|
| Attribution Requirement: |
Use or presentation of these data must acknowledge
|
| Format: |
Data are stored in Matlab v7 file format. See Zenodo for more details.
|
| Data: |
|
The data is used by the functions mk_thorax_model_bp3d and mk_thorax_model.
torso = mk_thorax_model_bp3d('2x16_odd-even','fine');
%%
fmdl = torso.fwd_model;
clf
h = show_fem(fmdl);
ch = get(gca, 'Children');
for i = 1:numel(ch)
set(ch(i),'EdgeColor','none');
end
set(h,'FaceColor',[.5 .5 .5]);
set(h,'FaceLighting','phong','AmbientStrength',0.7)
light('Position',[1 -.5 0.2],'Style','infinite');
set(h,'FaceAlpha',.3)
hold on
idx = [ 2, 3, 4];
alpha = [ .3, .3, 1];
color = [ .3 0 0;
.3 0 0;
.75 0 0;];
for i = 1:numel(idx)
obj = rmfield(fmdl,'boundary');
obj.elems = obj.elems(fmdl.mat_idx{idx(i)},:);
obj = fix_boundary(obj);
oh(i) = show_fem(obj);
set(oh(i),'EdgeColor','none')
set(oh(i),'FaceColor',color(i,:),'FaceLighting','phong')
set(oh(i),'FaceAlpha',alpha(i))
end
%oxygenated blood
idx = [5 9:12];
for i = 1:numel(idx)
obj = rmfield(fmdl,'boundary');
obj.elems = obj.elems(fmdl.mat_idx{idx(i)},:);
obj = fix_boundary(obj);
oh(i) = show_fem(obj);
set(oh(i),'EdgeColor','none')
set(oh(i),'FaceColor',[1 0 0],'FaceLighting','phong')
end
%de-oxygenated blood
idx = [6:8];
for i = 1:numel(idx)
obj = rmfield(fmdl,'boundary');
obj.elems = obj.elems(fmdl.mat_idx{idx(i)},:);
obj = fix_boundary(obj);
oh(i) = show_fem(obj);
set(oh(i),'EdgeColor','none')
set(oh(i),'FaceColor',[0 0 1],'FaceLighting','phong')
end
axis off
hold off
%%
view(3)
print_convert('torso_colors_01.jpg','-r600')
%%
view(0,0)
print_convert('torso_colors_02.jpg','-r600')
clf
torso.calc_colours.ref_level = 1;
torso.calc_colours.transparency_thresh = .01;
%show_3d_slices(torso, [1242],[],[]);
for i = [13 15 19:22]
torso.elem_data(torso.fwd_model.mat_idx{i}) = 3;
end
[slc, p] = mdl_slice_mesher(torso, [inf inf 1242]);
slc.calc_colours.ref_level = 1;
slc.calc_colours.transparency_thresh = .01;
h = show_fem(slc);
set(h,'LineWidth',1)
ch = get(gca,'Children');
% need a custom colormap
idx = unique(get(ch(18), 'FaceVertexCData'));
color = [ .3 0 0; % lung
1 .7 .7; % vessel
.75 0 0; % heart wall
0 0 1; % deox HB
1 0 0; % oxHB
];
c = ones(254,3);
for i = 1:numel(idx)
c(idx(i),:) = color(i,:);
end
colormap(c);
view(2)
set(gca,'ydir','reverse')
p.FaceVertexCData(:) = 0;
h2 = patch(p);
set(h2,'FaceAlpha',0)
set(h2,'LineWidth',0.1)
set(h2,'EdgeAlpha',.8)
axis off
print_convert('torso_slice_01.jpg','-r600');
For other examples of the use, see eidors-svn/pubs/conferences/EIT2024/torso-mesh-bp3d/mk_figures.m
mk_thorax_model_bp3d.
A) Full model with coloured organ regions, B) zoomed image into the full model
in the heard region, C) FEM mesh in a slice through the ventricles.Last Modified: $Date: 2024-12-30 07:58:07 -0500 (Mon, 30 Dec 2024) $ by $Author: aadler $