Eidors-logo    

EIDORS: Electrical Impedance Tomography and Diffuse Optical Tomography Reconstruction Software

EIDORS (mirror)
Main
Documentation
Tutorials
− Image Reconst
− Data Structures
− Applications
− FEM Modelling
− GREIT
− Old tutorials
Workshop
Download
Contrib Data
GREIT
Browse Docs
Browse SVN

News
Mailing list
(archive)
FAQ
Developer
                       

 

Hosted by
SourceForge.net Logo

 

EIDORS image reconstructions

Construcxtion of a simple 3D model and image reconstruction

The EIDORS inv_model describes all the parameters as part of image reconstruction
% Basic 3d model $Id: basic_3d_01.m 2161 2010-04-04 20:33:46Z aadler $

fmdl= ng_mk_cyl_models(3,[15,1,1.5,2],[0.1,0,0.05]); 
show_fem(fmdl);

imdl = mk_common_model('a2c2',8); % Will replace most fields
imdl.fwd_model = fmdl;
imdl.fwd_model.stimulation = mk_stim_patterns(45,1,[0,3],[0,1],{},1);
img1 = mk_image(imdl);

show_fem(img1);

print_convert('basic_3d_01a.png','-density 60')

Add circular inclusion
% Basic 3d model $Id: basic_3d_02.m 3790 2013-04-04 15:41:27Z aadler $

% Add a circular object at 0.2, 0.5
% Calculate element membership in object
select_fcn = inline('(x-0.2).^2 + (y-0.5).^2 + (z-2).^2 < 0.3^2','x','y','z');
memb_frac = elem_select( img1.fwd_model, select_fcn);
img2 = mk_image(img1, 1 + memb_frac );

img2.calc_colours.cb_shrink_move = [0.3,0.6,0.02];
show_fem(img2,1); axis tight;

print_convert('basic_3d_02a.png','-density 60');


Figure: 3D model with 3 layers of 15 electrodes (left) with a circular inclusion.
Show in a different way with cut planes
% Basic 3d model $Id: basic_3d_03.m 2161 2010-04-04 20:33:46Z aadler $

clf
% Show 3D object as slices
img2.calc_colours.greylev = -0.05;
img2.calc_colours.npoints = 128;
show_3d_slices(img2, [0.5,1.5,1.8,2.1]);
view(-14,13); axis tight; axis equal; zlim([0,3]);

print_convert('basic_3d_03a.png','-density 60')

show_3d_slices(img2, [1,1.9], [0.5],[0.5]);
view(-14,13); axis tight; axis equal;

print_convert('basic_3d_03b.png','-density 60')


Figure: 3D model with 3 layers of 15 electrodes and a circular inclusion shown with two cut planes.

Simulate Voltages

% Basic 3d model $Id: basic_3d_04.m 6511 2022-12-30 18:38:45Z aadler $

% Simulate Voltages and plot them
vh= fwd_solve(img1);
vi= fwd_solve(img2);

plot([vh.meas, vi.meas]);
axis tight
print_convert('basic_3d_04a.png','-density 60','-p10x5');


Figure: Simulated difference voltages

Reconstruction

Make a reconstruction matrix
% Reconstruction Model $Id: basic_3d_05.m 3126 2012-06-08 16:17:56Z bgrychtol $
J = calc_jacobian( calc_jacobian_bkgnd( imdl) );
iRtR = inv(prior_noser( imdl ));
hp = 0.17;
iRN = hp^2 * speye(size(J,1));
RM = iRtR*J'/(J*iRtR*J' + iRN);
imdl.solve = @solve_use_matrix; 
imdl.solve_use_matrix.RM  = RM;

Reconstruct the images
% Reconstruct Model $Id: basic_3d_06.m 2161 2010-04-04 20:33:46Z aadler $
imgr = inv_solve(imdl, vh, vi);

imgr.calc_colours.ref_level = 0; % difference imaging
imgr.calc_colours.greylev = -0.05;

show_fem(imgr);
print_convert('basic_3d_06a.png','-density 60');

show_3d_slices(imgr, [1,1.9], [0.5],[0.5]);
view(-14,13); axis tight; axis equal;
print_convert('basic_3d_06b.png','-density 60');


Figure: Reconstructed 3D images. The vertical extent of the object is expected, since the simulated target is outside the imaging plane.

Last Modified: $Date: 2017-02-28 13:12:08 -0500 (Tue, 28 Feb 2017) $ by $Author: aadler $