Eidors-logo    

EIDORS: Electrical Impedance Tomography and Diffuse Optical Tomography Reconstruction Software

EIDORS (mirror)
Main
Documentation
Examples
Tutorial
Download
Contrib Data
GREIT
Browse SVN

News
FAQ
Developer
                       

 

Hosted by
SourceForge.net Logo

 

Frequently Asked Questions

  1. What is EIDORS?

    The goal of EIDORS is to promote collaboration between groups working on Electrical Impedance Tomography (EIT) and Diffusion based Optical Tomography, in medical and industrial settings.

  2. How is EIDORS pronounced?

    EIDORS is pronounced like eiderdown. It sounds like eye doors.

  3. What is the logo?

    The logo is a walrus. EIDORS images blobby objects in aqueous media; similarly, the walrus is a fat, blobby animal that lives in water. The original (high resolution) image of the one used here is from the NOAA. See www.photolib.noaa.gov/animals/anim0030.htm. For another great picture of fat waruses see this image.

  4. Whom should I blame or thank or contact for more information?

    The current maintainers of EIDORS are Bill Lionheart and Andy Adler. Please contact them with suggestions, contribution of code, and contribution of sample data, meshes, and algorithms.

  5. How do I get started with EIDORS?

    Step 1: Download EIDORS
    Step 2: Unzip the file and save it to a directory like /path/to/eidors
    Step 3: Start Matlab (or Octave). Run this command: >>run /path/to/eidors/startup.m

  6. Are there any prebuilt examples?

    Yes, please look at the tutorial.

  7. Under what terms is EIDORS licenced

    EIDORS is licenced under the GNU General Public License. Uses are free to use, modify, and distribute their modifications. All modifications must include the source code, or instructions on how to obtain it.

  8. May I include EIDORS in a commercial product

    Yes. As long as you make the source code for EIDORS and all modifications you made to it available to your clients.

  9. How should I refer to EIDORS in a scientific publication

    Please quote the following paper

    Andy Adler, William R B Lionheart (2006) "Uses and abuses of EIDORS: An extensible software base for EIT", Physiol. Meas. 27:S25-S42, 2006

  10. Does EIDORS support 2D algorithms

    Yes. Look at examples/image_2d_algs.m. The older EIDORS 2D project based on code from Marko Vauhkonen has not yet been integrated into this version. See Old EIDORS page for links to download.

  11. Does EIDORS actually do diffuse optical tomography?

    Not yet, but we intend it to. Please contact us if you are willing to help with this.

  12. Does EIDORS provide sample data

    Yes. Look in the sample_data directory. We would love to have additional contributions of sample data from various experimental and clinical settings.

  13. May I use EIDORS sample data to test my algorithm

    Yes. However, if you publish your tests, you are generall required to refer to EIDORS in your publication. In general, you may simply list this paper in your references:

      Adler and Lionheart (2005), "Uses and abuses of EIDORS: An extensible software base for EIT" Submitted to Physiol. Meas., Nov. 2005
    However, certain data sets may require reference to a different paper. Please read the documentation for the particular data set.

  14. How do I use EIDORS to compare my idea to a published algorithm

    Please remember that this is only a toolkit, and that the demonstration programs are only simple worked examples. They are not intended to be the state of the art in EIT reconstruction. By all means publish your improved reconstruction algorithms and compare them with the simple ones we demonstrate here. But please don't just run the demo code on your own data, using the tiny demo mesh, a randomly chosen regularization parameter and only one iteration of regularized Newton's method then compare this with your own highly optimised code and claim that your code is vastly superior than EIDORS' best shot (Yes, we exagerate, slightly). This is a toolkit of routines for you to build a code which suits your application.

  15. What if I notice a bug?

    You may write an email to the maintainers.

  16. I need some features that are missing in EIDORS?

    Please note that EIDORS is a volunteer project by some very busy people. You are welcome to make suggestions for new features, but we may not be able to find the time to implement them.

    Good options are: 1) implement new features yourself, and contribute them to EIDORS3D, or 2) find a source of funds to pay for the features you need. In either case, you are welcome to contact the maintainers to discuss.

Errors and Solutions

  1. "??? Undefined command/function 'eidors_msg'."

    This error occurs because the functions are not part of the Matlab path. Use the command:

      >>run path/to/eidors/startup.m
    

  2. Matlab prints ugly bitmapped figures rather than vector graphics

    Matlab seems to try to guess what the user wants. At any rate, it often gets the choice wrong. To force vector graphics, use the '-painters' option. One useful trick to control the size of generated figures is to use the 'PaperPosition' property. Another useful trick to crop postscript figures is to use the imagemagick convert utility.

      >> set(gcf, 'PaperPosition', [0.25,2.5, width, height]);
      >> print( gcf, '-depsc2','-painters', 'temp.eps')
      >> system('convert -crop 0x0 temp.eps output.eps');
    

  3. "Warning: RGB color data not yet supported in Painter's mode."

    This is a limitation of Matlab. RGB data cannot be exported to postscript files. This can be solved by using colourmaps instead. Try this:

      >>global eidors_colours;
      >>eidors_colours.mapped_colour= 256;
    

  4. "??? Invalid MEX-file ..." error on Linux

    Sometimes one can get linux errors of the form
    ??? Invalid MEX-file '/home/andy/work/eidors3d/eidors_var_id.mexglx': libstdc++.so.6: cannot open shared object file: No such file or directory. or
    ??? Invalid MEX-file '/home/andy/work/eidors3d/eidors_var_id.mexglx': [...]/../sys/os/ glnx86/libgcc_s.so.1: version `GCC_3.3' not found (required by /usr/lib/libstdc++.so.6). These errors are can occur when the linux version on which EIDORS is run is different from that on which the mex file was built. The easiest solution is to recompile the mex file, as follows:

      >> mex eidors_var_id.cpp
    

  5. Using Netgen

    EIDORS can use netgen to create some fairly impressive 3D meshes. See the examples. Netgen usage with EIDORS is fairly easy under windows. You need to

    1. Download and install the windows binary from http://www.hpfem.jku.at/netgen/
    2. Run an example which calls netgen (ie call_netgen.m)
    3. Enter a path to the netgen binary without spaces (ie for C:\Program Files\netgen write C:/Progra~1/netgen)

  6. mk_stim_patterns question

    is the code

    stim= mk_stim_patterns(16, 1, '{ad}','{ad}', {}, 10);
    equivalent to
    stim= mk_stim_patterns(8, 2, '{ad}','{ad}', {}, 10);
    No, each ring is treated separately, so that, for example
    >> stim= mk_stim_patterns(4, 2, '{ad}','{ad}', {}, 10);
    >> full([stim(:).stim_pattern])
    ans = -10     0     0    10     0     0     0     0
           10   -10     0     0     0     0     0     0
            0    10   -10     0     0     0     0     0
            0     0    10   -10     0     0     0     0
            0     0     0     0   -10     0     0    10
            0     0     0     0    10   -10     0     0
            0     0     0     0     0    10   -10     0
            0     0     0     0     0     0    10   -10
    
    >> stim= mk_stim_patterns(8, 1, '{ad}','{ad}', {}, 10);
    >> full([stim(:).stim_pattern])
    ans = -10     0     0     0     0     0     0    10
           10   -10     0     0     0     0     0     0
            0    10   -10     0     0     0     0     0
            0     0    10   -10     0     0     0     0
            0     0     0    10   -10     0     0     0
            0     0     0     0    10   -10     0     0
            0     0     0     0     0    10   -10     0
            0     0     0     0     0     0    10   -10
    

  7. Compiling Netgen under linux

    To use netgen under linux is more complicated. I got it to work on Fedora FC5 by doing:

    1. install the packages compat-gcc-32-3.2.3 and compat-gcc-32-c++-3.2.3
    2. ensure tk, tcl, and tix are installed.
    3. Download and install the source from http://www.hpfem.jku.at/netgen/ and install it under $HOME/src/ngs44
    4. cd to $HOME/src/ngs44
    5. Edit the file ./libsrc/meshing/meshtype.hpp to add class Mesh; at line 957.
    6. Find tkInt.h in the tk includes. (I found it here /usr/include/tk-private/generic/tkInt.h)
    7. Get TK version (grep TK_PATCH_LEVEL /usr/include/tk.h)
    8. Add a line to togl/togl.cpp (around line 143) based on the TK_PATCH_LEVEL
      #elif TK_MAJOR_VERSION==8 && TK_MINOR_VERSION==4 && TK_RELEASE_SERIAL==13
      #  include "/usr/include/tk-private/generic/tkInt.h"
      
    9. Modify tcltklib and syslib in Makefile
      #(OLD) tcltklib = -ltix8.1.8.4 -ltk8.4  -ltcl8.4
      tcltklib = -ltix -ltk8.4  -ltcl8.4
      #(OLD) syslib = $(tcltklib) -lGL -lGLU -lX11  -lXi -lm  -ldl -lpthread $(SYSLIB2)
      syslib = $(tcltklib) -lGL -lGLU -lX11  -lm  -ldl -lpthread $(SYSLIB2)
      
    10. It would be nice to build using CC=gcc32 MACHINE=LINUX make, but netgen hardcodes gcc. So, edit the Makefiles using:
      find -name Makefile -exec perl -i -pe's/(\sgcc)\s/${1}32 /' \{} \;
      
    11. Build using: MACHINE=LINUX make CC=gcc32,
    Useful information is found here, and here

Last Modified: $Date: 2008-07-26 11:36:27 -0400 (Sat, 26 Jul 2008) $ by $Author: aadler $