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
|
EIDORS image reconstructionsConstrucxtion of a simple 3D model and image reconstructionThe 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. % 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 ReconstructionMake 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 $