Master | Development | Anaconda binaries |
---|---|---|
The Core Imaging Library (CIL) is an open-source Python framework for tomographic imaging with particular emphasis on reconstruction of challenging datasets. Conventional filtered backprojection reconstruction tends to be insufficient for highly noisy, incomplete, non-standard or multichannel data arising for example in dynamic, spectral and in situ tomography. CIL provides an extensive modular optimization framework for prototyping reconstruction methods including sparsity and total variation regularization, as well as tools for loading, preprocessing and visualizing tomographic data.
Jupyter Notebooks usage examples without any local installation are provided in Binder. Please click the launch binder icon above. For more information, go to CIL-Demos and https://mybinder.org.
The documentation for CIL can be accessed here.
Binary installation of CIL can be done with conda
. Install a new environment using:
conda create --name cil -c conda-forge -c intel -c ccpi cil
To install CIL and the additional packages and plugins needed to run the CIL demos install the environment with:
conda create --name cil -c conda-forge -c intel -c astra-toolbox/label/dev -c ccpi cil cil-astra ccpi-regulariser tigre tomophantom=1.4.10
where,
ccpi-regulariser
will give you access to the CCPi Regularisation Toolkit.
cil-astra
will give you access to the CIL wrappers to the ASTRA toolbox projectors (GPLv3 license).
tomophantom
Tomophantom will allow you to generate phantoms to use as test data.
tigre
will allow you to use CIL wrappers to the TIGRE toolbox projectors (BSD license).
cudatoolkit
If you have GPU drivers compatible with more recent CUDA versions you can modify this package selector (installing tigre via conda requires 9.2).
CIL's optimised FDK/FBP recon
module requires:
- the Intel Integrated Performance Primitives Library (license) which can be installed via conda from the
intel
channel. - TIGRE, which can be installed via conda from the
ccpi
channel.
In case of development it is useful to be able to build the software directly. You should clone this repository as
git clone --recurse-submodule [email protected]:TomographicImaging/CIL.git
The use of --recurse-submodule
is necessary if the user wants the examples data to be fetched (they are needed by the unit tests). We have moved such data, previously hosted in this repo at Wrappers/Python/data
to the CIL-data repository and linked it to this one as submodule. If the data is not available it can be fetched in an already cloned repository as
git submodule update --init
CMake and a C++ compiler are required to build the source code. Let's suppose that the user is in the source directory, then the following commands should work:
mkdir build
cd build
cmake .. -DCMAKE_INSTALL_PREFIX=<install_directory>
cmake --build . --target install
The user then needs to add the path to <install_directory>/lib
where the library is installed to the environment variable PATH
or LD_LIBRARY_PATH
, depending on system
[1] Jørgensen JS et al. 2021 Core Imaging Library Part I: a versatile python framework for tomographic imaging. Phil. Trans. R. Soc. A 20200192. Code. Pre-print
[2] Papoutsellis E et al. 2021 Core Imaging Library - Part II: multichannel reconstruction for dynamic and spectral tomography. Phil. Trans. R. Soc. A 20200193. Code. Pre-print