|
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
|
GN reconstruction vs BackprojectionThis tutorial shows how solvers can be defined to reconstruct onto the nodes or the elementsDefine a regular GN solverA regular GN solver is defined first on the elements, and then on the nodes.
%$Id: nodal_jacobian01.m 4839 2015-03-30 07:44:50Z aadler $
imdl_e= mk_common_model('b2c2',16);
imdl_e.hyperparameter.value= 0.2;
imdl_e.RtR_prior = @prior_laplace;
fmdl= imdl_e.fwd_model;
imdl_n= imdl_e;
imdl_n.fwd_model.jacobian = @jacobian_elem2nodes;
imdl_n.fwd_model.jacobian_elem2nodes.fwd_model = fmdl;
imdl_n.RtR_prior = @RtR_prior_elem2nodes;
imdl_n.RtR_prior_elem2nodes.RtR_prior = @prior_laplace;
imdl_n.RtR_prior_elem2nodes.fwd_model = fmdl;
imdl_n.reconst_to = 'nodes';
img_e= mk_image( imdl_e );
img_n= img_e;
img_n.fwd_model= imdl_n.fwd_model;
img_n= rmfield(img_n,'elem_data');
img_n.node_data= mapper_nodes_elems(fmdl)*img_e.elem_data;
J_e= calc_jacobian( img_e);
J_n= calc_jacobian( img_n);
Examples with tank data% load some lung data load iirc_data_2006; vi = v_rotate(:,50); vh = v_reference; img1= inv_solve(imdl_e,vh,vi); subplot(121) show_slices(img1); img2= inv_solve(imdl_n,vh,vi); subplot(122) show_slices(img2); print -r125 -dpng nodal_jacobian_solver02.png;
Figure: Left: Tank data reconstructed on the element mesh Right:Tank data reconstructed on the nodal mesh Examples with lung data
% load some lung data
load montreal_data_1995;
vi = zc_resp(:,2);
vh = zc_resp(:,19);
% Lung forward model - with electrode #1 on back
imdl_lung= mk_common_model('b2t2',16);
fmdl_lung= imdl_lung.fwd_model;
fmdl_lung.electrode= fmdl_lung.electrode([9:16,1:8]);
% Put lung models into the inv_model for elems
imdl_e.fwd_model= fmdl_lung;
% Put lung models into the inv_model for nodes
fmdl_lung.jacobian_elem2nodes.fwd_model = fmdl_lung;
fmdl_lung.jacobian = @jacobian_elem2nodes;
imdl_n.fwd_model= fmdl_lung;
imdl_n.RtR_prior_elem2nodes.fwd_model = fmdl_lung;
img1= inv_solve(imdl_e,vh,vi);
subplot(121)
show_slices(img1);
img2= inv_solve(imdl_n,vh,vi);
subplot(122)
show_slices(img2);
%print -r125 -dpng nodal_jacobian_solver.png;
Figure: Left: Lung data reconstructed on the element mesh Right:Lung data reconstructed on the nodal mesh |
Last Modified: $Date: 2017-02-28 13:12:08 -0500 (Tue, 28 Feb 2017) $ by $Author: aadler $