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

 

GN reconstruction vs Backprojection

This tutorial shows how solvers can be defined to reconstruct onto the nodes or the elements

Define a regular GN solver

A 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 $