Releases: LLNL/LEAP
Releases · LLNL/LEAP
v1.23
Version 1.23 release notes
- Speed and image quality improvements to ringRemoval_fast.
- Speed and image quality improvements to ringRemoval.
- Improvements to ball_phantom_calibration.
- All denoising algorithms can now be applied to 2D arrays (before only 3D arrays were accepted).
- Added allocate_projections and allocate_volume functions to C++ API to assist those who use this API.
- Intermediate calculations of GPU-based ray tracing routines through geometric solids (e.g., the rayTrace command) now use doubles which resolves errors witnessed for some cases.
- Added new API calls to assist in GUI development.
v1.22
Version 1.22 release notes
- Added ball phantom calibration algorithm to leap_preprocessing_algorithms.py and added script d36_ball_phantom_calibration.py that provides a demo of this new function.
- Added detector shifts to parameter_sweep function to accommodate modular-beam geometries.
- Added torch tensor contiguous check to the verify_inputs function.
- Added C++ based tiff readers and writers that are faster than Python functions in the case where one needs to read only a subset of each tiff file in a sequence. This is useful when processing large files in smaller chunks. These tiff writers also store the slope and offset values in the header of the file when the data is saved as uint8 or uint16. The tiff readers also read in these slope and offset values (for when the data is saved as uint8 or uint16), so they can be retrieved later and the correct image scaling achieved.
- Minor bug fixes.
v1.21
v1.20
Version 1.20 release notes
- Speed improvements (about 2X faster) to TV functions.
- Added FBP_slice function which reconstruct a single slice.
- Added gain_correction preprocessing algorithm.
- Added transmission_shift preprocessing algorithm.
- Bug fix to default number of z-slice in helical CT.
- Other minor bug fixes.
v1.19
Version 1.19 release notes
- Added the capability to perform Voxel-Driven (VD) backprojection to all geometries which are less accurate than the (modified) Seprable-Footprint (SF) projectors, but in some cases are up to twice as fast. I added a discuss of the resolution and noise tradeoffs between the two methods here. To switch between VD and SF projectors use the set_projector function.
- Added the ability to save tiff stacks as uint8 or uint16 files which save on disk space. See the set_fileIO_parameters function description.
- Added HighPassFilter2D function.
- Added TV_denoise function which is similar to the Diffuse function, but incorporates an L2 loss term between the denoised and original input.
- Bug fix to convert_to_modularbeam when tau is not equal to zero.
- Minor speed improvements to some preprocessing algorithms.
v1.18
Version 1.18 release notes
- Bug fixes to rebin_parallel.
- Added GPU-based ray-tracing through geometric solids (used to simulate data) which significantly improves the computational performance.
- Added badPixelCorrection function which is similar to outlierCorrection, except the user provides a binary map specifying which pixels they want corrected.
- Added estimateTilt function which estimates the detector rotation angle around the optical axis. Updated d12_geometric_calibration.py to show how this function is used.
- Added conjugate_difference function which provides a method to estimate detector tilt and horizontal detector shifts. Updated d12_geometric_calibration.py to show how this function is used.
- Modified volume masking feature, so that the input volume is NOT altered during a forward projection operation.
- Fixed bug in histogram sparsity regularization
v1.17
Version 1.17 release notes
- Added projectors for a new geometry: cone-parallel. Cone-parallel coordinates are the standard for medical CT and are obtained by rebinning cone-beam data, so that each fan-beam is rebinned to parallel-beam. Note that the rays still diverge in the z-dimension and thus the name: cone-parallel. Cone-parallel is now fully supporting in LEAP, e.g., forward and back projection, FBP, helical, analytic ray tracing, iterative reconstruction, etc.
- Added rebin_parallel which rebins fan-beam to parallel-beam and cone-beam to cone-parallel.
- Fixed helical FBP scaling issue for curved detectors.
- Added set_FBPlowpass function which enables arbitrary smoothing of the ramp filter.
- Fixed bugs in preprocessing demo script.
- Added low signal correction preprocessing algorithm.
- Fixed bug related to forward projecting "small" voxels in parallel-beam coordinates.
v1.16
Version 1.16 release notes
- Improved the LEAP build scripts which relaxes constraints and should make it easier to compile. In the past I have said that Visual Studio 2022 was incompatible with CUDA but this may have changed and now LEAP may be able to be compiled with VS 2022. If one of our users could verify this for us, we'd really appreciate it! VS 2022 should be ready to be tested with the pip install and if you'd like to build it with cmake, use etc\win_build_vs_2022.bat.
- Added FBP_adjoint function which computes the adjoint operation of FBP.
- Made modifications to leaptorch.py to enable the FBP operator to be differentiable. See demo_leaptorch/test_recon_projections_NN.py for an example.
- Bug fix to cone-beam forward projector when projecting "small" voxels.
- Improved accuracy of scaling of helical FBP.
- Improved documentation.
v1.15
Version 1.15 release notes
- Added the capability to specify a user-specified mask on the reconstruction which can improve performance of iterative reconstruction algorithms. See demo script: d35_volume_masking.py
- Fixed minor bug in cone-beam sensitivity calculation
- Added space carving algorithm which provides a robust method to estimate the foreground of a reconstruction directly from the projection data which is used in the new demo script: d35_volume_masking.py
- Added error checking to all iterative reconstruction algorithms to make sure the provided projection and volume data are compatible with LEAP
- Enabled inconsistency reconstruction for helical
- Improvements to preprocessing algorithms including default arguments, documentation, and error checking
- Added function sliceRangeNeededForProjection which enables performing forward projection in chunks for situations where you don't have enough CPU memory
- Added demo script d34_iterative_reconstruction_long_object.py which shows you how to perform an iterative reconstruction where the object extends past the top and/or bottom of the detector. This script utilizes the so-called Ziegler method.
- Bug fix to medianFilter2D and BlurFilter2D for the case where you the algorithm had to perform in smaller chunks to fit into GPU memory.
- Improvements to documentation
v1.14
Version 1.14 release notes
- Fixed bugs in helical FBP that were causing some low frequency artifacts.
- Added mean and variance filters
- Fixed type in d12_geometricCalibration.py script
- Fixed bug in subsets partition that was causing the last subset to be missing a projection
- Added to documentation