tomobar.regularisersCuPy
#
Adding CuPy-enabled regularisers from the CCPi-regularisation toolkit and instantiate a proximal operator for iterative methods.
- tomobar.regularisersCuPy.PD_TV_cupy(data: <cp.ndarray>, regularisation_parameter: float | None = 1e-05, iterations: int | None = 1000, methodTV: int | None = 0, nonneg: int | None = 0, lipschitz_const: float | None = 8.0, gpu_id: int | None = 0, half_precision: bool = False) <cp.ndarray> [source]#
- Primal Dual algorithm for non-smooth convex Total Variation functional.
Ref: Chambolle, Pock, “A First-Order Primal-Dual Algorithm for Convex Problems with Applications to Imaging”, 2010.
- Parameters:
data (cp.ndarray) – A 2d or 3d CuPy array.
regularisation_parameter (Optional[float], optional) – Regularisation parameter to control the level of smoothing. Defaults to 1e-05.
iterations (Optional[int], optional) – The number of iterations. Defaults to 1000.
methodTV (Optional[int], optional) – Choose between isotropic (0) or anisotropic (1) case for TV norm.
nonneg (Optional[int], optional) – Enable non-negativity in updates by selecting 1. Defaults to 0.
lipschitz_const (Optional[float], optional) – Lipschitz constant to control convergence.
gpu_id (Optional[int], optional) – A GPU device index to perform operation on. Defaults to 0.
- Returns:
PD-TV filtered CuPy array.
- Return type:
cp.ndarray
- tomobar.regularisersCuPy.prox_regul(self, X: <cp.ndarray>, _regularisation_: dict) <cp.ndarray> [source]#
Enabling proximal operators step in iterative reconstruction.
- Parameters:
X (cp.ndarray) – 2D or 3D CuPy array.
_regularisation_ (dict) – Regularisation dictionary with parameters, see
tomobar.supp.dicts
.
- Returns:
Filtered 2D or 3D CuPy array.
- Return type:
cp.ndarray