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 $