Releases: tomopy/tomopy
New filtering method and bug fixes
What's Changed
- BUG: Convert upsample_factor from positional to key argument by @dgursoy in #563
- REF: Fixed mismatched function prototype vs. implementation by @jrmadsen in #565
- STY: Use NotImplementedError instead of logging by @carterbox in #559
- NEW: Adding a Median Filter for Non-Finite Values by @WilliamJudge94 in #566
- TST: Add atol param to ordered subset tests by @carterbox in #561
New Contributors
- @WilliamJudge94 made their first contribution in #566
Full Changelog: 1.10.4...1.11.0
Mitigate instability in MLEM and other batch methods
Added a small constant to prevent zero-division in MLEM/OSEM. Fixed how blocks in ordered subset methods are chosen, so they actually match the number of requested blocks.
Additional simulated artifacts and new CUDA versions
What's Changed
- Additional reconstruction artifacts by @dreycenfoiles in #540
- BLD: CUDA arch 86 not available until 11.1 by @carterbox in #543
Full Changelog: 1.9.2...1.10.0
Interpolation-based stripe removal
Adds a new stripe removal method along with tests for prep.stripe and updating the some of the stripe removal parameters. Also adds fixes for zero division in the stripe removal algorithms.
Optional build dependencies
Previously, TomoPy required both OpenCV and MKL as build dependencies. These libraries are used for the CPU accelerated versions of SIRT/MLEM and the gridrec reconstruction algorithm, respectively. However, users of TomoPy may not need the functionality provided by them or want these dependencies installed, so it does not make sense for them to be required during the TomoPy build process.
The best way to make these dependencies optional was modularization of the TomoPy C/C++ extensions. This is accomplished by breaking up the shared-object library file into five separate library files that have no inter-dependencies. These libraries are "accel" (the accelerated MLEM and SIRT functions), "gridrec" (the gridrec reconstruction algorithm), "misc", "prep" and "recon", which contain the C implementations of functions from the Python modules of the same name. Under this new file organization, if MKL or OpenCV are not found during the build process, the corresponding shared-library object will be skipped, but the other library files will build succesfully.
The header files for the C extensions are now divided into one of five folders depending on which library they provide forward declarations for and functions are removed from headers that are not meant to be in the public API. This source reorganization's purpose is to conform to common practice for C shared libraries. Also, since it was not possible to remove all non-public functions from the headers, internal headers were created to provide forward declarations when multiple files rely on a function.
The main contributor for this release was @dreycenfoiles.
Allow using gridrec with align_adjoint
This release contains a bug fix that prevented the user from choosing gridrec
as the algorithm for align_adjoint
.
Patch external package interfaces
Update the documentation and fix broken integrations with ASTRA, Binder, and the NumPy FFT library.
Lens distortion correction
Adds lens distortion correction methods from @nghia-vo for projection and sinograms.
Tikhonov regularization with Identity Tikhonov matrix
Patch broken ring removal and add Python 2 deprecation warning
BUG: Fix name of functions used in remove_all_stripe (#427) Closes #426