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

 

GREIT algorithms: Example images

This tutorial uses the various GREIT algorithm candidates to generate a set of example images. This is primarily a sanity check that the algorithms work. This tutorial documents work in progress during the development of the GREIT framework, it is now of mostly historical interest.

Prepare data: phantom data

% Tank Data $Id: demo_algs01.m 3839 2013-04-16 14:53:12Z aadler $

% exclude measures at electrodes
[x,y]= meshgrid(1:16,1:16); idx= abs(x-y)>1 & abs(x-y)<15;

load iirc_data_2006; clear v
v(1).vh= - real(v_reference(idx,1));
v(1).vi= - real(v_rotate(idx,1));

Prepare data: simulated FEM

% Simulated objects
imb=  mk_common_model('c2c',16);

img= mk_image( imb );
vv= fwd_solve( img ); v(2).vh= vv.meas;
img.elem_data([25,37,49:50,65:66,81:83,101:103,121:124])= 1.1;
img.elem_data([95,98:100,79,80,76,63,64,60,48,45,36,33,22])= 1.1;
vv= fwd_solve( img ); v(2).vi= vv.meas;

% Noise
sig = norm(v(2).vi - v(2).vh);
randn('seed',50);noise = randn(size(v(2).vh));
v(3).vi = v(2).vi + noise/norm(noise)*sig * 10^(-6/20);
v(3).vh = v(2).vh;

subplot(221);show_fem(img);
axis square; axis off
print_convert demo_algs02a.png;

Prepare data: human tidal breathing

% Human breathing $Id: demo_algs03.m 1559 2008-07-27 03:19:58Z aadler $

% Electrodes on back
load montreal_data_1995
v(4).vh = double( zc_resp(idx,1) );
v(4).vi = double( zc_resp(idx,22) );

Algorithm results

Using the function get_list_of_algs.m:
    % Algorithm list $Id: get_list_of_algs.m 1619 2008-09-22 16:32:56Z aadler $
    function algs= get_list_of_algs;
    
    algs = {'GREIT_Sheffield_backproj', ...
            'GREIT_NOSER_ndiff', ...
            'GREIT_NOSER_diff', ...
            'GREIT_test_ndiff', ...
           };
    
    
we can run the following demo script:
% Demo algorithms $Id: demo_algs04.m 1576 2008-07-28 09:19:55Z aadler $

algs= get_list_of_algs;

imb.calc_colours.ref_level = 0; % select colour output
imb.calc_colours.greylev   = 0.01; % black backgnd
imb.calc_colours.backgnd   = [.5,.5,.5]; %grey

for i= 1:length(algs)
   for k= 1:4
      [img,map] = feval(algs{i}, v(k).vh, v(k).vi );

      imc= calc_colours(img, imb);
      imc(~map) = 1; % background

      imwrite(imc,colormap, sprintf('demo_algs04_%d%d.png',i,k),'png')
    end
end

Insulating
target in
tank
Simulated
target
(No noise)
Simulated
target
(6dB SNR)
Shallow
breathing
 
Sheffield
Backproj
NOSER
Norm Diff
NOSER
Diff
GREIT
Test

Last Modified: $Date: 2017-02-28 13:12:08 -0500 (Tue, 28 Feb 2017) $ by $Author: aadler $