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
|
Electrode movement reconstruction for simulated 2D dataHere we create a simple 2D model and change the boundary shape between two measurments.% Generate simulation data without noise and standard reconstruction % Create circular FEM - creates a eidors_mdl type inv_model. mdlc = mk_common_model('c2c'); f_img = mk_image( mdlc, 1); vh = fwd_solve( f_img ); % Hard coded values here represent local inhomogeneities f_img.elem_data([75,93,94,113,114,136]) = 1.2; f_img.elem_data([105,125,126,149,150,174]) = 0.8; % Simulate node movements - shrink x, stretch y by 1% of model diameter % node0 before, node1 after movement movement = [1-0.01 0; 0 1+0.01]; node0 = f_img.fwd_model.nodes; node1 = node0*movement; f_img.fwd_model.nodes = node1; % Solve inhomogeneous forward problem with movements and normal noise % 1% of standard deviation of signal vi = fwd_solve( f_img ); move = node1 - node0; % Plot FEM with conductivities and movement vectors. show_fem_move( f_img, move, 20 ); print_convert move_2d01.png '-density 75' Figure: Forward solution of a 2D model where the boundary was changed between measurements. The arrows show how the electrodes were displaced (scaled 20x). % Generate eidors planar finite element model mdl2dim = mk_common_model('b2c'); mdl2dim.hyperparameter.value= 0.1; clim= .088; % Solve inverse problem for mdl2dim eidors_obj model. img2dim = inv_solve(mdl2dim, vh, vi); img2dim.calc_colours.clim= clim; img2dim.calc_colours.backgnd= [.9,.9,.9]; % Plot results for each algorithm subplot(1,2,1); show_fem_move(img2dim); img2dim.calc_colours.cb_shrink_move = [0.5,1.0,.02]; eidors_colourbar(img2dim); % Set eidors_obj hyperparameter member. mdlM = mdl2dim; mdlM.fwd_model.jacobian = @jacobian_movement; mdlM.RtR_prior = @prior_movement; mdlM.prior_movement.parameters = sqrt(1e2/1); % Solve inverse problem for mdlM eidors_obj model. imgM = inv_solve(mdlM, vh, vi); imgM.calc_colours.clim= clim; imgM.calc_colours.backgnd= [.9,.9,.9]; % Plot results for each algorithm subplot(1,2,2); show_fem_move(imgM); imgM.calc_colours.cb_shrink_move = [0.5,0.9,.02]; eidors_colourbar(imgM); print_convert move_2d02.png Figure: Inverse solutions of the problem above. Left image shows image reconstruction without movement correction, and right image shows reconstruction with estimated movement corrections shown by green arrows (scaled 20x). |
Last Modified: $Date: 2017-02-28 13:12:08 -0500 (Tue, 28 Feb 2017) $ by $Author: aadler $