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
|
GREIT Reconstruction MatrixThe AUSPEX Software is an EIT evaluate and analysis software from Carefusion. AUSPEX is designed to analyse data collected from the Geo II MF EIT system. It uses a reconstruction algorithm based on Sheffield backprojection.To replace this algorithm with GREIT algorithm, one needs to replace the file ReconstructionMatrixF.mat with another one calculated by this tutorial. Circular GREIT modeln_elecs = 16; fmdl = ng_mk_cyl_models([1 1 0.1] ,[n_elecs,.5],[0.05]); % NOTE: The 'rotate_meas' is essential here. fmdl.stimulation = mk_stim_patterns(n_elecs,1,[0,1],[0,1],{'rotate_meas','no_meas_current'}, 1); fmdl = mdl_normalize(fmdl, 1); %MUST FOR AUSPEX opt.imgsz = [32 32]; opt.distr = 3; opt.noise_figure = 0.5; imdl = mk_GREIT_model(fmdl, 0.20, [], opt); % DESTINATION AUSPEX MODEL cmdl = mk_common_gridmdl('b2d','backproj'); cmdl = rmfield(cmdl.fwd_model,'coarse2fine'); % MODEL GEOMETRIES MUST MATCH f2c = mk_coarse_fine_mapping(cmdl, imdl.rec_model); RM = f2c*imdl.solve_use_matrix.RM(1:size(f2c,2),:); ReconstrMatrix= - ( RM(1:2:end,:) + RM(2:2:end,:) )'; save ReconstrMatrixGREITc ReconstrMatrix -V6; Adult human GREIT modeln_elecs = 16; fmdl= mk_library_model('adult_male_16el'); fmdl.electrode = fmdl.electrode([9:16,1:8]); fmdl.electrode = fmdl.electrode([1,16:-1:2]); fmdl.stimulation = mk_stim_patterns(n_elecs,1,[0,1],[0,1],{'rotate_meas','no_meas_current'}, 1); fmdl = mdl_normalize(fmdl, 1); img = mk_image(fmdl,1); % Homogeneous background opt.imgsz = [32 32]; opt.distr = 3; opt.noise_figure = 0.5; imdl = mk_GREIT_model(fmdl, 0.25, [], opt); % MODEL fmdl = imdl.rec_model; fmdl.nodes = fmdl.nodes/max(fmdl.nodes(:))*1.1*[1,0;0,-1]; cmdl = mk_common_gridmdl('b2d','backproj'); cmdl = rmfield(cmdl.fwd_model,'coarse2fine'); f2c = mk_coarse_fine_mapping(cmdl, fmdl); RM = f2c*imdl.solve_use_matrix.RM(1:size(f2c,2),:); ReconstrMatrix= - ( RM(1:2:end,:) + RM(2:2:end,:) )'; save ReconstrMatrixGREITt ReconstrMatrix -V6; Test Simulationsimdl = mk_common_model('c2c2',16); imdl.fwd_model.stimulation = ... mk_stim_patterns(16,1,[0,1],[0,1],{'rotate_meas','no_meas_current'},1); img = mk_image(imdl); vh = fwd_solve( img ); img.elem_data(290) = 1.1; vi = fwd_solve( img ); clf;subplot(221); show_fem(img); title('Test Object'); print_convert GREIT_AUSPEX03a.png Figure: Simulation with target to test AUSPEX matrix Test of GREIT/AUSPEX matricess=1; fnames = {'ReconstrMatrixGREITc.mat','ReconstrMatrixGREITt.mat'}; for i=1:length(fnames); load(fnames{i}); imdl = mk_common_gridmdl('b2d',ReconstrMatrix'); imgr= inv_solve(imdl, vh, vi); subplot(2,2,s+0); show_fem(imgr); title('Test Object Reconstruction'); imgr.elem_data = mean(ReconstrMatrix==0)'; subplot(2,2,s+1); show_fem(imgr); title('Domain Boundary'); s=s+2;end print_convert GREIT_AUSPEX04a.png Figure: LeftReconstructions. RightReconstruction Domain |
Last Modified: $Date: 2017-02-28 13:12:08 -0500 (Tue, 28 Feb 2017) $ by $Author: aadler $