CIL
CIL copied to clipboard
A versatile python framework for tomographic imaging
In #1586, I presented the new `PGA` class that implements the following $$x_{k+1} = prox_{\gamma_{k}g}(x_{k} - \gamma_{k}D(x_{k})\nabla f(x_{k}))$$ Similar to #1588 , where a `Preconditioner` class is passed for `D`,...
For the [Stochastic Project](https://github.com/epapoutsellis/StochasticCIL/tree/svrg), I implemented a new base class called `PGA` (Proximal Gradient Algorithm). This is a base class used for the `GD`, `ISTA` and `FISTA` algorithms. These algorithms...
In #1586 , I described the new PGA class which implements the following iteration $$x_{k+1} = prox_{\gamma_{k}g}(x_{k} - \gamma_{k}D(x_{k})\nabla f(x_{k}))$$ where $D(x_{k})$ is a (diagonal) [Preconditioner](https://en.wikipedia.org/wiki/Preconditioner). For this, I implemented...
SAG/SAGA are already implemented [here](https://github.com/TomographicImaging/Hackathon-000-Stochastic-Algorithms/blob/main/cil/NewSubsetSumFunction.py). We need to create a PR, reviewed by everyone with unittests etc. **First step is to merge SubsetSumFunction in master.**
Add a processor to automatically run a bad pixel correction on projections. This will take the mean of nearest neighbours (including diagonals)
I think it'd be good to add a reference to SIRF, saying that CIL is compatible with SIRF and can therefore be used for MRm, PET and SPECT data as...
I don't think the following works for a BlockOperator not of the form (1xM): https://github.com/TomographicImaging/CIL/blob/0418ed2abd42c085db25aa3d0405b4b16e6591e4/Wrappers/Python/cil/optimisation/operators/BlockOperator.py#L157C1-L159C79 e.g.  Perhaps the best solution is just to raise an error in this case....
https://github.com/TomographicImaging/CIL/blob/b7d05fa6fa984ef1ced227875dcb4247f0077072/Wrappers/Python/cil/optimisation/functions/OperatorCompositionFunction.py#L76-L78 The gradient in OperatorCompositionFunction is assumed to work in-place. If this is intended, then this should be stated in the documentation so that custom functions are implemented to handle...

### Issue: rotation direction is always CCW in 2D geometry Tested in `CIL 23.0.1` In short: it is possible to change the direction of rotation for 3D geometry by changing...