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 algorithm: Sheffield backprojection

There are several different versions of the backprojection algorithm in existence. The one made available here is the version distributed with the Sheffield Mk I system, and is very similar to the algorithm distributed with the Göttingen Goe MF II EIT system. Almost all clinical and experimental publications which mention "backprojection" use the version of the algorithm provided here. The paper which probably best describes this algorithm is Santosa, F. and Vogelius, M. (1990) Backprojection algorithm for electrical impedance imaging, SIAM J. Applied Mathematics, 50:216−243.

This matrix is copyright DC Barber and BH Brown at University of Sheffield. It may be used free of charge for research and non-commercial purposes. Commercial applications require a licence from the University of Sheffield.

GREIT Sheffield Backprojection reconstruction function

This code requires the backprojection matrix from here
function [img,map]= GREIT_Sheffield_backproj( ref_meas, reconst_meas )

   [RM,map] = calc_backproj_matrix;

   % Expand ref_meas to the full size of reconst_meas
   num_meas = size(reconst_meas,2);
   ref_meas = ref_meas * ones(1,num_meas);
   dv = ( reconst_meas - ref_meas ) ./ ref_meas; % CHANGE IS HERE:

   % reconst image
   ds = RM*dv;

   img= reshape(ds, 32,32,num_meas);

function [RM,map] = calc_backproj_matrix;
   [x,y]= meshgrid(1:16,1:16); % Take a slice
   ss1 = (y-x)>1 & (y-x)<15;
   sel1 = abs(x-y)>1 & abs(x-y)<15;
   [x,y]= meshgrid(-15.5:15.5,-15.5:15.5);
   ss2 = abs(x-y)<25 & abs(x+y)<25 & x<0 & y<0 & x>=y ;
   sel2 = abs(x-y)<25 & abs(x+y)<25;
 
   load Sheffield_Backproj_Matrix.mat
   BP  = zeros(16^2, 32^2);
   BP(ss1,ss2) = Sheffield_Backproj_Matrix;
   BP  = reshape(BP, 16,16,32,32); % Build up
   BP  = BP + permute(BP, [2,1,3,4]); % Reciprocity
% FLIP LR
   el= 16:-1:1;            BP= BP + BP(el,el,[32:-1:1],:);
% FLIP UD
   el= [8:-1:1,16:-1:9];   BP= BP + BP(el,el,:,[32:-1:1]);
% Transpose
   el= [12:-1:1,16:-1:13]; BP= BP + permute(BP(el,el,:,:), [1,2,4,3]);
% Final flip to match radiological view (upward toward patient)
   BP = permute(BP, [1,2,4,3]);

   RM= reshape(BP, 256, [])';
   RM= RM(:,sel1);

   map = sel2;

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