Git Product home page Git Product logo

flexdata's Introduction

flexDATA

This project is a part of the larger X-ray tomographic reconstruction toolbox comprised of flexDATA, flexTOMO and flexCALC. flexDATA contains IO routines that were originally developed for the Flex-Ray X-ray CT scanner but can be used for reading and writing data from other types of CT scanners. It provides an interface between a scanner and a GPU-based CT reconstruction ASTRA Toolbox. It can be especially helpful when the scanner has many degrees of freedom and the geometry of each scan is defined by a large number of parameters.

Getting Started

It takes a few steps to setup flexDATA on your machine. We recommend that the user installs conda package manager for Python 3.

Installing with conda

conda install flexdata -c cicwi -c astra-toolbox -c nvidia

Installing with pip

pip install flexdata

Installing from source

git clone https://github.com/cicwi/flexdata.git
cd flexdata
pip install -e .

Running the examples

To learn about the functionality of the package check out our examples/ folder. Examples are separated into blocks that are best to run in VS Code / Spyder environment step-by-step.

Modules

flexDATA is comprised of the following modules:

  • flexdata.data: Read / write raw projection stacks (tiffs), parse settings file of the scanner to produce meta data.
  • flexdata.geometry: Geometry classes (circular, helical and linear).
  • flexdata.display: Simple display routines for 3D arrays

Typical usage:

# Import:
from flexdata import data

# Read raw projections and flat field images:
proj = data.read_tiffs(path, file_name)
flat = data.read_tiffs(path, file_name)

# Read metadata:
geom = data.read_flexraylog(path)

# Generate an ASTRA-compatible projection geometry description:
proj_geom = geom.astra_proj_geom(proj.shape)

Authors and contributors

  • Alexander Kostenko - Initial work
  • Allard Hendriksen - Packaging and installation
  • Jan-Willem Buurlage - Packaging and installation
  • Willem Jan Palenstijn - Packaging, installation and maintenance
  • Alexander Skorikov - Packaging, installation and maintenance

See also the list of contributors who participated in this project.

How to contribute

Contributions are always welcome. If you have any issues, questions, or remarks, then please open an issue on GitHub.

License

This project is licensed under the GNU GENERAL PUBLIC License - see the LICENSE.md file for details

Acknowledgments

  • To Willem Jan Palenstijn for endless advices regarding the use of ASTRA toolbox.

flexdata's People

Contributors

adriaangraas avatar ahendriksen avatar askorikov avatar fgbossema avatar teascavenger avatar wjp avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

flexdata's Issues

New compression argument in tiffile library crashes write_image function

When writing tiff images with the write_image function, the tifffile library is used through the imageio library. In recent versions of the tifffile library the compress argument of the imwrite function is removed and replaced by the compression and compressionargs arguments. This causes the write_image function to crash.

This happens with tifffile library versions newer than 2022.4.8

Transforms3d dependency does not work through conda

Installing flexDATA through conda fails with the instructions:

conda create -n <your-environment> python=3.6
conda install -c cicwi -c astra-toolbox/label/dev -c conda-forge -c owlas flexdata

When running:

python -i
import flexdata

you get an error stating that transforms3d is not found. This is most likely because the conda build of transforms3d is broken. Installing it manually through pip does work:

pip install transforms3d
python -i
import flexdata
# all is well

I realize this is probably an issue with the upstream package, but as of now the conda build of flexdata unfortunately does not work out of the box :(

Hardcoded angular range

flexDATA's flexray metadata parsing functions currently seem to have a hardcoded angular range of a full circle, instead of getting this from the metadata.

The new 'Acquisition settings XRE.txt' metadata file has a setting 'projs_per_360' that looks like it might be the most reliable value to use for this. We'd have to switch to preferring that file over 'scan settings.txt' if we want to use that, though.

Linear geometry - Help

I want to make the geometry file for linear Tomo.

Please guide how can I proceed .I have attached the image for reference.

Geom

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.