Metadata-Version: 2.1
Name: corrct
Version: 0.3.2
Summary: Physically corrected projectors for X-ray induced emission CT.
Home-page: https://github.com/cicwi/PyCorrectedEmissionCT
Author: Nicola VIGANÒ
Author-email: N.R.Vigano@cwi.nl
License: BSD license
Description: # PyCorrectedEmissionCT
        
        [![Python package](https://github.com/cicwi/PyCorrectedEmissionCT/actions/workflows/pythonpackage.yml/badge.svg)](https://github.com/cicwi/PyCorrectedEmissionCT/actions/workflows/pythonpackage.yml)
        ![GitHub tag (latest by date)](https://img.shields.io/github/v/tag/cicwi/PyCorrectedEmissionCT)
        ![License](https://img.shields.io/github/license/cicwi/PyCorrectedEmissionCT)
        [![DOI](https://zenodo.org/badge/218092017.svg)](https://zenodo.org/badge/latestdoi/218092017)
        
        Physically corrected projectors for X-ray induced emission CT.
        
        This package provides the following functionality:
        
        * Support for correction of the forward-projection and back-projection.
        * Includes the following solvers (reconstruction algorithms):
          - Simultaneous Iterative Reconstruction Technique (SIRT).
          - Simultaneous Algebraic Reconstruction Technique (SART).
          - Primal-dual optimization from Chambolle-Pock, with:
            * Various data fitting terms, including Gaussian and Poisson noise modelling.
            * Various optional regularization terms, including: TV-min, l1-min, laplacian, and wavelet l1-min.
        
        It contains the code used for the following paper, which also provides a
        mathematical description of the concepts and algorithms used here:
        
        * N. Viganò and V. A. Solé, "Physically corrected forward operators for
        induced emission tomography: a simulation study," Meas. Sci. Technol., no.
        Advanced X-Ray Tomography, pp. 1–26, Nov. 2017.  
        [https://doi.org/10.1088/1361-6501/aa9d54](https://doi.org/10.1088/1361-6501/aa9d54)
        
        Other useful information:
        
        * Free software: BSD 3-Clause license
        * Documentation: [https://cicwi.github.io/PyCorrectedEmissionCT/](https://cicwi.github.io/PyCorrectedEmissionCT/)
        
        <!--
        ## Readiness
        
        The author of this package is in the process of setting up this
        package for optimal usability. The following has already been completed:
        
        - [ ] Documentation
            - A package description has been written in the README
            - Documentation has been generated using `make docs`, committed,
                and pushed to GitHub.
        	- GitHub pages have been setup in the project settings
        	  with the "source" set to "master branch /docs folder".
        - [ ] An initial release
        	- In `CHANGELOG.md`, a release date has been added to v0.1.0 (change the YYYY-MM-DD).
        	- The release has been marked a release on GitHub.
        	- For more info, see the [Software Release Guide](https://cicwi.github.io/software-guides/software-release-guide).
        - [ ] A conda package
            - Required packages have been added to `setup.py`, for instance,
              ```
              requirements = [
                  # Add your project's requirements here, e.g.,
                  # 'astra-toolbox',
                  # 'sacred>=0.7.2',
                  # 'tables==3.4.4',
              ]
              ```
              has been replaced by
              ```
              requirements = [
                  'astra-toolbox',
                  'sacred>=0.7.2',
                  'tables==3.4.4',
              ]
              ```
            - All "conda channels" that are required for building and
              installing the package have been added to the
              `Makefile`. Specifically, replace
              ```
              conda_package:
                conda install conda-build -y
                conda build conda/
              ```
              by
              ```
              conda_package:
                conda install conda-build -y
                conda build conda/ -c some-channel -c some-other-channel
              ```
            - Conda packages have been built successfully with `make conda_package`.
            - These conda packages have been uploaded to
              [Anaconda](https://anaconda.org). [This](http://docs.anaconda.com/anaconda-cloud/user-guide/getting-started/#cloud-getting-started-build-upload)
              is a good getting started guide.
            - The installation instructions (below) have been updated. Do not
              forget to add the required channels, e.g., `-c some-channel -c
              some-other-channel`, and your own channel, e.g., `-c cicwi`.
        -->
        
        ## Getting Started
        
        It takes a few steps to setup PyCorrectedEmissionCT on your
        machine. We recommend installing
        [Anaconda package manager](https://www.anaconda.com/download/) for
        Python 3.
        
        ### Installing with conda
        
        Simply install with:
        ```
        conda install -c n-vigano corrct
        ```
        
        ### Installing from source
        
        To install PyCorrectedEmissionCT, simply clone this GitHub
        project. Go to the cloned directory and run PIP installer:
        ```
        git clone https://github.com/cicwi/PyCorrectedEmissionCT.git corrct
        cd corrct
        pip install -e .
        ```
        
        ### Running the examples
        
        To learn more about the functionality of the package check out our
        examples folder.
        
        ## Authors and contributors
        
        * **Nicola VIGANÒ** - *Initial work*
        
        See also the list of [contributors](https://github.com/cicwi/PyCorrectedEmissionCT/contributors) who participated in this project.
        
        ## How to contribute
        
        Contributions are always welcome. Please submit pull requests against the `master` branch.
        
        If you have any issues, questions, or remarks, then please open an issue on GitHub.
        
        ## License
        
        This project is licensed under the BSD license - see the [LICENSE.md](LICENSE.md) file for details.
        
        
        # Changelog
        All notable changes to this project will be documented in this file.
        
        The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
        and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
        
        [Unreleased]: https://www.github.com/cicwi/corrct/compare/v0.3.2...develop
        
        ## 0.3.2 - 2021-04-15
        ### Added
        - scikit-image backend, as preferred in 2D non-GPU reconstructions.
        - Renamed AttenuationProjector into ProjectorAttenuationXRF.
        - Support for test/cross-validation sets in solvers.
        - Residual calculation with different data-fidelity terms.
        - Projection matrix based projector.
        ### Fixed
        - PyWavelets interface change.
        - Background usage in the data terms.
        - Examples on the different data-fidelity terms.
        - Github workflows to use pip instead of conda.
        
        ## 0.3.1 - 2020-10-20
        ### Added
        - FFT operator, and FFT regularizer.
        - l2-gradient (smooth) regularizer.
        - Support for multiple regularizers.
        ### Fixed
        - Norm l2b (deadzone) is also weighted now.
        - Weighted least-squares implementation.
        - Crop inverse DWT output when necessary.
        - Changelog of 0.3.0
        
        ## 0.3.0 - 2020-09-23
        ### Added
        - Data fidelity classes:
          - Use as norms for regularizers.
          - New classes: Huber norm, l12, l2b (l2 with deadzone), l1b (l1 with deadzone).
          - Residual computation.
          - Background bias support.
        - Regularization:
          - New classes: smoothness based on gradient, Huber TV, decimated wavelets, Huber wavelet, median filter.
          - Constraint classes (lower and upper limits) based on regularization.
          - Simplified and unified code.
        - Solvers:
          - SIRT now supports various l2 norm data terms.
          - CP and SIRT report better information on regularization.
          - Use of data term to compute residual correctly.
        - More flexibility and options to image denoiser.
        - New module for easing development of tests and examples.
        ### Fixed
        - Python hard crash when CUDA not available.
        - Examples to comply with recent changes.
        - Axes passing to wavelet transform.
        - Stationary wavelet weights calculation.
        
        ## 0.2.4 - 2020-06-01
        ### Added
        - Operator form (based on scipy.linalg.LinearOperator) for regularizers and projectors
        - Data fidelity function classes, including weighted least-squares
        - More test coverage
        - Support for non GPU reconstructions (in 2D)
        - Multi-dimensional volume mask creation
        ### Fixed
        - SIRT regularization
        - Windows conda package build, and Python 3.8 target
        - Laplacian regularizer norm
        - Wavelet regularizer normalization
        
        ## 0.2.3 - 2020-05-05
        ### Added
        - On-demand padding for Wavelet regularizer
        - Projection intensity rescaling for different angles in base projector
        - Support for 3D absorption maps (but not thouroughly tested, yet)
        - Data-term residual computation to all solvers
        - Some tests to solvers and regularizers
        - Automated testing and linting on github workflows
        - Support for ASTRA's super-sampling of pixels and voxels
        - Implemented scipy's sparse LinearOperator interface for the projectors
        - Utility min-log and simple flat-fielding functions for transmission data
        ### Fixed
        - Copy-paste error, and detector data axis order in SART algorithm implementation
        - Weights for masks in SART algorithm
        - Error in unpreconditioned CP implementation
        - Applied linting changes, to improve the readability of the code
        
        ## 0.2.2 - 2020-03-30
        ### Added
        - Unpreconditioned Chambolle-Pock algorithm (as default)
        - Utility functions for sinogram padding and circular volume mask creation
        - FBP data-dependent filters from D. Pelt
        - Improved performance of backprojection in non-symmetric uncorrected
        ### Fixed
        - Wavelet decomposition along one dimension
        - TV regularizer for dimensions larger than ndims
        - Documentation and links
        - Handling of matrices
        
        ## 0.2.1 - 2020-02-25
        ### Added
        - New regularizers: non-decimated wavelets and laplacian
        - Solvers: added projection masks, relaxation parameters, sirt regularizers
        - Uncorrected projector for 2D and 3D data
        ### Fixed
        - sub-pixel attenuation correction
        
        ## 0.2.0 - 2019-11-05
        ### Added
        - Multi-detector reconstruction
        ### Fixed
        - TV-min sign
        - Solvers' name visualization
        - Back-projection behavior with different inputs
        
        ## 0.1.0 - 2019-10-29
        ### Added
        - Initial release, with corrected forward and back-projections.
        - SIRT, SART, and Chambolle-Pock solvers.
        - TV-min and l1-norm based regularizers.
        
Keywords: corrct
Platform: UNKNOWN
Classifier: Development Status :: 2 - Pre-Alpha
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: BSD License
Classifier: Natural Language :: English
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Requires-Python: >=3.5
Description-Content-Type: text/markdown
Provides-Extra: dev
