corrct.regularizers

Regularizers module.

@author: Nicola VIGANÒ, Computational Imaging group, CWI, The Netherlands, and ESRF - The European Synchrotron, Grenoble, France

Module Contents

Classes

BaseRegularizer

Initialize a base regularizer class, that defines the Regularizer object interface.

Regularizer_Grad

Gradient regularizer.

Regularizer_TV1D

Total Variation (TV) regularizer in 1D. It can be used to promote piece-wise constant reconstructions.

Regularizer_TV2D

Total Variation (TV) regularizer in 2D. It can be used to promote piece-wise constant reconstructions.

Regularizer_TV3D

Total Variation (TV) regularizer in 3D. It can be used to promote piece-wise constant reconstructions.

Regularizer_HubTV2D

Total Variation (TV) regularizer in 2D. It can be used to promote piece-wise constant reconstructions.

Regularizer_HubTV3D

Total Variation (TV) regularizer in 3D. It can be used to promote piece-wise constant reconstructions.

Regularizer_smooth1D

It can be used to promote smooth reconstructions.

Regularizer_smooth2D

It can be used to promote smooth reconstructions.

Regularizer_smooth3D

It can be used to promote smooth reconstructions.

Regularizer_lap

Laplacian regularizer. It can be used to promote smooth reconstructions.

Regularizer_lap1D

Laplacian regularizer in 1D. It can be used to promote smooth reconstructions.

Regularizer_lap2D

Laplacian regularizer in 2D. It can be used to promote smooth reconstructions.

Regularizer_lap3D

Laplacian regularizer in 3D. It can be used to promote smooth reconstructions.

Regularizer_l1

l1-norm regularizer. It can be used to promote sparse reconstructions.

Regularizer_swl

Base stationary wavelet regularizer. It can be used to promote sparse reconstructions in the wavelet domain.

Regularizer_l1swl

l1-norm Wavelet regularizer. It can be used to promote sparse reconstructions in the wavelet domain.

Regularizer_l12swl

l1-norm Wavelet regularizer. It can be used to promote sparse reconstructions in the wavelet domain.

Regularizer_Hub_swl

l1-norm Wavelet regularizer. It can be used to promote sparse reconstructions in the wavelet domain.

Regularizer_dwl

Base decimated wavelet regularizer. It can be used to promote sparse reconstructions in the wavelet domain.

Regularizer_l1dwl

l1-norm decimated wavelet regularizer. It can be used to promote sparse reconstructions.

Regularizer_l12dwl

l1-norm decimated wavelet regularizer. It can be used to promote sparse reconstructions.

Regularizer_Hub_dwl

l1-norm decimated wavelet regularizer. It can be used to promote sparse reconstructions.

BaseRegularizer_med

Median filter regularizer base class. It can be used to promote filtered reconstructions.

Regularizer_l1med

l1-norm median filter regularizer. It can be used to promote filtered reconstructions.

Regularizer_l2med

l2-norm median filter regularizer. It can be used to promote filtered reconstructions.

Regularizer_fft

Fourier regularizer. It can be used to promote sparse reconstructions in the Fourier domain.

Regularizer_TNV

Total Nuclear Variation (TNV) regularizer.

Regularizer_VTV

Vectorial Total Variation (VTV) regularizer.

Regularizer_lnswl

Nuclear-norm Wavelet regularizer.

Regularizer_vl1wl

l1-norm vectorial Wavelet regularizer. It can be used to promote compressed reconstructions.

Regularizer_vSVD

Regularizer based on the Singular Value Decomposition.

Constraint_LowerLimit

Lower limit constraint. It can be used to promote reconstructions in certain regions of solution space.

Constraint_UpperLimit

Upper limit constraint. It can be used to promote reconstructions in certain regions of solution space.

Data

NDArrayInt

API

corrct.regularizers.NDArrayInt

None

class corrct.regularizers.BaseRegularizer(weight: Union[float, numpy.typing.NDArray], norm: corrct.data_terms.DataFidelityBase, upd_mask: Optional[numpy.typing.NDArray] = None, dtype: numpy.typing.DTypeLike = np.float32)[source]

Bases: abc.ABC

Initialize a base regularizer class, that defines the Regularizer object interface.

Parameters

weight : Union[float, NDArray] The weight of the regularizer. norm : DataFidelityBase The norm of the regularizer minimization.

Initialization

__reg_name__ = <Multiline-String>
weight: numpy.typing.NDArray

None

dtype: numpy.typing.DTypeLike

None

op: Union[corrct.operators.BaseTransform, None]

None

sigma: Union[float, numpy.typing.NDArray]

None

upd_mask: Optional[numpy.typing.NDArray]

None

info() str[source]

Return the regularizer info.

Returns

str Regularizer info string.

upper() str[source]

Return the upper case name of the regularizer.

Returns

str Upper case string name of the regularizer.

lower() str[source]

Return the lower case name of the regularizer.

Returns

str Lower case string name of the regularizer.

abstract initialize_sigma_tau(primal: numpy.typing.NDArray) Union[float, numpy.typing.NDArray][source]

Initialize the internal state, operator, and sigma. It then returns the tau.

Parameters

primal : NDArray The primal vector.

Returns

Union[float, NDArray] The tau to be used in the SIRT or PDHG algorithm.

initialize_dual() numpy.typing.NDArray[source]

Return the initialized dual.

Returns

NDArray Initialized (zero) dual.

update_dual(dual: numpy.typing.NDArray, primal: numpy.typing.NDArray) None[source]

Update the dual in-place.

Parameters

dual : NDArray Current stat of the dual. primal : NDArray Primal or over-relaxation of the primal.

apply_proximal(dual: numpy.typing.NDArray) None[source]

Apply the proximal operator to the dual in-place.

Parameters

dual : NDArray The dual to be applied the proximal on.

compute_update_primal(dual: numpy.typing.NDArray) numpy.typing.NDArray[source]

Compute the partial update of a primal term, from this regularizer.

Parameters

dual : NDArray The dual associated to this regularizer.

Returns

upd : NDArray The update to the primal.

_check_primal(primal: numpy.typing.NDArray) None[source]
class corrct.regularizers.Regularizer_Grad(weight: Union[float, numpy.typing.NDArray], ndims: int = 2, axes: Union[collections.abc.Sequence[int], numpy.typing.NDArray, None] = None, pad_mode: str = 'edge', upd_mask: Optional[numpy.typing.NDArray] = None, norm: corrct.data_terms.DataFidelityBase = dt.DataFidelity_l12())[source]

Bases: corrct.regularizers.BaseRegularizer

Gradient regularizer.

When used with l1-norms, it promotes piece-wise constant reconstructions. When used with l2-norm, it promotes smooth reconstructions.

Parameters

weight : Union[float, NDArray] The weight of the regularizer. ndims : int, optional The number of dimensions. The default is 2. axes : Sequence, optional The axes over which it computes the gradient. If None, it uses the last 2. The default is None. pad_mode: str, optional The padding mode to use for the linear convolution. The default is “edge”. norm : DataFidelityBase, optional The norm of the regularizer minimization. The default is DataFidelity_l12().

Initialization

__reg_name__

‘grad’

initialize_sigma_tau(primal: numpy.typing.NDArray) Union[float, numpy.typing.NDArray][source]
class corrct.regularizers.Regularizer_TV1D(weight: Union[float, numpy.typing.NDArray], axes: Union[collections.abc.Sequence[int], numpy.typing.NDArray, None] = None, pad_mode: str = 'edge', upd_mask: Optional[numpy.typing.NDArray] = None, norm: corrct.data_terms.DataFidelityBase = dt.DataFidelity_l12())[source]

Bases: corrct.regularizers.Regularizer_Grad

Total Variation (TV) regularizer in 1D. It can be used to promote piece-wise constant reconstructions.

Initialization

__reg_name__

‘TV1D’

class corrct.regularizers.Regularizer_TV2D(weight: Union[float, numpy.typing.NDArray], axes: Union[collections.abc.Sequence[int], numpy.typing.NDArray, None] = None, pad_mode: str = 'edge', upd_mask: Optional[numpy.typing.NDArray] = None, norm: corrct.data_terms.DataFidelityBase = dt.DataFidelity_l12())[source]

Bases: corrct.regularizers.Regularizer_Grad

Total Variation (TV) regularizer in 2D. It can be used to promote piece-wise constant reconstructions.

Initialization

__reg_name__

‘TV2D’

class corrct.regularizers.Regularizer_TV3D(weight: Union[float, numpy.typing.NDArray], axes: Union[collections.abc.Sequence[int], numpy.typing.NDArray, None] = None, pad_mode: str = 'edge', upd_mask: Optional[numpy.typing.NDArray] = None, norm: corrct.data_terms.DataFidelityBase = dt.DataFidelity_l12())[source]

Bases: corrct.regularizers.Regularizer_Grad

Total Variation (TV) regularizer in 3D. It can be used to promote piece-wise constant reconstructions.

Initialization

__reg_name__

‘TV3D’

class corrct.regularizers.Regularizer_HubTV2D(weight: Union[float, numpy.typing.NDArray], huber_size: float, axes: Union[collections.abc.Sequence[int], numpy.typing.NDArray, None] = None, pad_mode: str = 'edge', upd_mask: Optional[numpy.typing.NDArray] = None)[source]

Bases: corrct.regularizers.Regularizer_Grad

Total Variation (TV) regularizer in 2D. It can be used to promote piece-wise constant reconstructions.

Initialization

__reg_name__

‘HubTV2D’

class corrct.regularizers.Regularizer_HubTV3D(weight: Union[float, numpy.typing.NDArray], huber_size: float, axes: Union[collections.abc.Sequence[int], numpy.typing.NDArray, None] = None, pad_mode: str = 'edge', upd_mask: Optional[numpy.typing.NDArray] = None)[source]

Bases: corrct.regularizers.Regularizer_Grad

Total Variation (TV) regularizer in 3D. It can be used to promote piece-wise constant reconstructions.

Initialization

__reg_name__

‘HubTV3D’

class corrct.regularizers.Regularizer_smooth1D(weight: Union[float, numpy.typing.NDArray], axes: Union[collections.abc.Sequence[int], numpy.typing.NDArray, None] = None, pad_mode: str = 'edge', upd_mask: Optional[numpy.typing.NDArray] = None, norm: corrct.data_terms.DataFidelityBase = dt.DataFidelity_l2())[source]

Bases: corrct.regularizers.Regularizer_Grad

It can be used to promote smooth reconstructions.

Initialization

__reg_name__

‘smooth1D’

class corrct.regularizers.Regularizer_smooth2D(weight: Union[float, numpy.typing.NDArray], axes: Union[collections.abc.Sequence[int], numpy.typing.NDArray, None] = None, pad_mode: str = 'edge', upd_mask: Optional[numpy.typing.NDArray] = None, norm: corrct.data_terms.DataFidelityBase = dt.DataFidelity_l2())[source]

Bases: corrct.regularizers.Regularizer_Grad

It can be used to promote smooth reconstructions.

Initialization

__reg_name__

‘smooth2D’

class corrct.regularizers.Regularizer_smooth3D(weight: Union[float, numpy.typing.NDArray], axes: Union[collections.abc.Sequence[int], numpy.typing.NDArray, None] = None, pad_mode: str = 'edge', upd_mask: Optional[numpy.typing.NDArray] = None, norm: corrct.data_terms.DataFidelityBase = dt.DataFidelity_l2())[source]

Bases: corrct.regularizers.Regularizer_Grad

It can be used to promote smooth reconstructions.

Initialization

__reg_name__

‘smooth3D’

class corrct.regularizers.Regularizer_lap(weight: Union[float, numpy.typing.NDArray], ndims: int = 2, axes: Union[collections.abc.Sequence[int], numpy.typing.NDArray, None] = None, pad_mode: str = 'edge', upd_mask: Optional[numpy.typing.NDArray] = None)[source]

Bases: corrct.regularizers.BaseRegularizer

Laplacian regularizer. It can be used to promote smooth reconstructions.

Initialization

__reg_name__

‘lap’

initialize_sigma_tau(primal: numpy.typing.NDArray) Union[float, numpy.typing.NDArray][source]
class corrct.regularizers.Regularizer_lap1D(weight, axes: Union[collections.abc.Sequence[int], numpy.typing.NDArray, None] = None, pad_mode: str = 'edge', upd_mask: Optional[numpy.typing.NDArray] = None)[source]

Bases: corrct.regularizers.Regularizer_lap

Laplacian regularizer in 1D. It can be used to promote smooth reconstructions.

Initialization

__reg_name__

‘lap1D’

class corrct.regularizers.Regularizer_lap2D(weight, axes: Union[collections.abc.Sequence[int], numpy.typing.NDArray, None] = None, pad_mode: str = 'edge', upd_mask: Optional[numpy.typing.NDArray] = None)[source]

Bases: corrct.regularizers.Regularizer_lap

Laplacian regularizer in 2D. It can be used to promote smooth reconstructions.

Initialization

__reg_name__

‘lap2D’

class corrct.regularizers.Regularizer_lap3D(weight, axes: Union[collections.abc.Sequence[int], numpy.typing.NDArray, None] = None, pad_mode: str = 'edge', upd_mask: Optional[numpy.typing.NDArray] = None)[source]

Bases: corrct.regularizers.Regularizer_lap

Laplacian regularizer in 3D. It can be used to promote smooth reconstructions.

Initialization

__reg_name__

‘lap3D’

class corrct.regularizers.Regularizer_l1(weight: Union[float, numpy.typing.NDArray], upd_mask: Optional[numpy.typing.NDArray] = None, norm: corrct.data_terms.DataFidelityBase = dt.DataFidelity_l1())[source]

Bases: corrct.regularizers.BaseRegularizer

l1-norm regularizer. It can be used to promote sparse reconstructions.

Initialization

__reg_name__

‘l1’

initialize_sigma_tau(primal: numpy.typing.NDArray) Union[float, numpy.typing.NDArray][source]
update_dual(dual: numpy.typing.NDArray, primal: numpy.typing.NDArray) None[source]
class corrct.regularizers.Regularizer_swl(weight: Union[float, numpy.typing.NDArray], wavelet: str, level: int, ndims: int = 2, axes: Union[collections.abc.Sequence[int], numpy.typing.NDArray, None] = None, pad_on_demand: str = 'constant', upd_mask: Optional[numpy.typing.NDArray] = None, normalized: bool = False, min_approx: bool = True, norm: corrct.data_terms.DataFidelityBase = dt.DataFidelity_l1())[source]

Bases: corrct.regularizers.BaseRegularizer

Base stationary wavelet regularizer. It can be used to promote sparse reconstructions in the wavelet domain.

Initialization

__reg_name__

‘swl’

info() str[source]

Return the regularizer info.

Returns

str Regularizer info string.

initialize_sigma_tau(primal: numpy.typing.NDArray) Union[float, numpy.typing.NDArray][source]
update_dual(dual: numpy.typing.NDArray, primal: numpy.typing.NDArray) None[source]
apply_proximal(dual: numpy.typing.NDArray) None[source]
class corrct.regularizers.Regularizer_l1swl(weight: Union[float, numpy.typing.NDArray], wavelet: str, level: int, ndims: int = 2, axes: Union[collections.abc.Sequence[int], numpy.typing.NDArray, None] = None, pad_on_demand: str = 'constant', upd_mask: Optional[numpy.typing.NDArray] = None, normalized: bool = False, min_approx: bool = True)[source]

Bases: corrct.regularizers.Regularizer_swl

l1-norm Wavelet regularizer. It can be used to promote sparse reconstructions in the wavelet domain.

Initialization

__reg_name__

‘l1swl’

class corrct.regularizers.Regularizer_l12swl(weight: Union[float, numpy.typing.NDArray], wavelet: str, level: int, ndims: int = 2, axes: Union[collections.abc.Sequence[int], numpy.typing.NDArray, None] = None, pad_on_demand: str = 'constant', upd_mask: Optional[numpy.typing.NDArray] = None, normalized: bool = False, min_approx: bool = True)[source]

Bases: corrct.regularizers.Regularizer_swl

l1-norm Wavelet regularizer. It can be used to promote sparse reconstructions in the wavelet domain.

Initialization

__reg_name__

‘l12swl’

class corrct.regularizers.Regularizer_Hub_swl(weight: Union[float, numpy.typing.NDArray], wavelet: str, level: int, ndims: int = 2, axes: Union[collections.abc.Sequence[int], numpy.typing.NDArray, None] = None, pad_on_demand: str = 'constant', upd_mask: Optional[numpy.typing.NDArray] = None, normalized: bool = False, min_approx: bool = True, huber_size: Optional[int] = None)[source]

Bases: corrct.regularizers.Regularizer_swl

l1-norm Wavelet regularizer. It can be used to promote sparse reconstructions in the wavelet domain.

Initialization

__reg_name__

‘Hubswl’

class corrct.regularizers.Regularizer_dwl(weight: Union[float, numpy.typing.NDArray], wavelet: str, level: int, ndims: int = 2, axes: Union[collections.abc.Sequence[int], numpy.typing.NDArray, None] = None, pad_on_demand: str = 'constant', upd_mask: Optional[numpy.typing.NDArray] = None, min_approx: bool = True, norm: corrct.data_terms.DataFidelityBase = dt.DataFidelity_l1())[source]

Bases: corrct.regularizers.BaseRegularizer

Base decimated wavelet regularizer. It can be used to promote sparse reconstructions in the wavelet domain.

Initialization

__reg_name__

‘dwl’

info() str[source]

Return the regularizer info.

Returns

str Regularizer info string.

initialize_sigma_tau(primal: numpy.typing.NDArray) Union[float, numpy.typing.NDArray][source]
update_dual(dual: numpy.typing.NDArray, primal: numpy.typing.NDArray) None[source]
apply_proximal(dual: numpy.typing.NDArray) None[source]
class corrct.regularizers.Regularizer_l1dwl(weight: Union[float, numpy.typing.NDArray], wavelet: str, level: int, ndims: int = 2, axes: Union[collections.abc.Sequence[int], numpy.typing.NDArray, None] = None, pad_on_demand: str = 'constant', upd_mask: Optional[numpy.typing.NDArray] = None)[source]

Bases: corrct.regularizers.Regularizer_dwl

l1-norm decimated wavelet regularizer. It can be used to promote sparse reconstructions.

Initialization

__reg_name__

‘l1dwl’

class corrct.regularizers.Regularizer_l12dwl(weight: Union[float, numpy.typing.NDArray], wavelet: str, level: int, ndims: int = 2, axes: Union[collections.abc.Sequence[int], numpy.typing.NDArray, None] = None, pad_on_demand: str = 'constant', upd_mask: Optional[numpy.typing.NDArray] = None)[source]

Bases: corrct.regularizers.Regularizer_dwl

l1-norm decimated wavelet regularizer. It can be used to promote sparse reconstructions.

Initialization

__reg_name__

‘l12dwl’

class corrct.regularizers.Regularizer_Hub_dwl(weight: Union[float, numpy.typing.NDArray], wavelet: str, level: int, ndims: int = 2, axes: Union[collections.abc.Sequence[int], numpy.typing.NDArray, None] = None, pad_on_demand: str = 'constant', upd_mask: Optional[numpy.typing.NDArray] = None, huber_size: Optional[int] = None)[source]

Bases: corrct.regularizers.Regularizer_dwl

l1-norm decimated wavelet regularizer. It can be used to promote sparse reconstructions.

Initialization

__reg_name__

‘Hubdwl’

class corrct.regularizers.BaseRegularizer_med(weight: Union[float, numpy.typing.NDArray], filt_size: int = 3, upd_mask: Optional[numpy.typing.NDArray] = None, norm: corrct.data_terms.DataFidelityBase = dt.DataFidelity_l1())[source]

Bases: corrct.regularizers.BaseRegularizer

Median filter regularizer base class. It can be used to promote filtered reconstructions.

Initialization

__reg_name__

‘med’

info() str[source]

Return the regularizer info.

Returns

str Regularizer info string.

initialize_sigma_tau(primal: numpy.typing.NDArray) Union[float, numpy.typing.NDArray][source]
update_dual(dual: numpy.typing.NDArray, primal: numpy.typing.NDArray) None[source]
class corrct.regularizers.Regularizer_l1med(weight: Union[float, numpy.typing.NDArray], filt_size: int = 3)[source]

Bases: corrct.regularizers.BaseRegularizer_med

l1-norm median filter regularizer. It can be used to promote filtered reconstructions.

Initialization

__reg_name__

‘l1med’

class corrct.regularizers.Regularizer_l2med(weight: Union[float, numpy.typing.NDArray], filt_size: int = 3)[source]

Bases: corrct.regularizers.BaseRegularizer_med

l2-norm median filter regularizer. It can be used to promote filtered reconstructions.

Initialization

__reg_name__

‘l2med’

class corrct.regularizers.Regularizer_fft(weight: Union[float, numpy.typing.NDArray], ndims: int = 2, axes: Union[collections.abc.Sequence[int], numpy.typing.NDArray, None] = None, fft_filter: str = 'exp', upd_mask: Optional[numpy.typing.NDArray] = None, norm: corrct.data_terms.DataFidelityBase = dt.DataFidelity_l12())[source]

Bases: corrct.regularizers.BaseRegularizer

Fourier regularizer. It can be used to promote sparse reconstructions in the Fourier domain.

Initialization

__reg_name__

‘fft’

initialize_sigma_tau(primal: numpy.typing.NDArray) Union[float, numpy.typing.NDArray][source]
class corrct.regularizers.Regularizer_TNV(weight: Union[float, numpy.typing.NDArray], ndims: int = 2, axes: Union[collections.abc.Sequence[int], numpy.typing.NDArray, None] = None, pad_mode: str = 'edge', upd_mask: Optional[numpy.typing.NDArray] = None, spectral_norm: corrct.data_terms.DataFidelityBase = dt.DataFidelity_l1(), x_ref: Optional[numpy.typing.NDArray] = None)[source]

Bases: corrct.regularizers.Regularizer_Grad

Total Nuclear Variation (TNV) regularizer.

It can be used to promote piece-wise constant reconstructions, for multi-channel volumes.

Initialization

__reg_name__

‘TNV’

initialize_sigma_tau(primal: numpy.typing.NDArray) Union[float, numpy.typing.NDArray][source]
class corrct.regularizers.Regularizer_VTV(weight: Union[float, numpy.typing.NDArray], ndims: int = 2, pwise_der_norm: Union[int, float] = 2, pwise_chan_norm: Union[int, float] = np.inf, x_ref: Optional[numpy.typing.NDArray] = None, upd_mask: Optional[numpy.typing.NDArray] = None)[source]

Bases: corrct.regularizers.Regularizer_Grad

Vectorial Total Variation (VTV) regularizer.

It can be used to promote piece-wise constant reconstructions, for multi-channel volumes.

Initialization

__reg_name__

‘VTV’

_raise_pwise_norm_error()[source]
apply_proximal(dual: numpy.typing.NDArray) None[source]
class corrct.regularizers.Regularizer_lnswl(weight: Union[float, numpy.typing.NDArray], wavelet: str, level: int, ndims: int = 2, axes: Union[collections.abc.Sequence[int], numpy.typing.NDArray, None] = None, pad_on_demand: str = 'constant', upd_mask: Optional[numpy.typing.NDArray] = None, normalized: bool = False, min_approx: bool = True, spectral_norm: corrct.data_terms.DataFidelityBase = dt.DataFidelity_l1(), x_ref: Optional[numpy.typing.NDArray] = None)[source]

Bases: corrct.regularizers.Regularizer_l1swl

Nuclear-norm Wavelet regularizer.

It can be used to promote compressed multi-channel reconstructions.

Initialization

__reg_name__

‘lnswl’

initialize_sigma_tau(primal: numpy.typing.NDArray) Union[float, numpy.typing.NDArray][source]
class corrct.regularizers.Regularizer_vl1wl(weight: Union[float, numpy.typing.NDArray], wavelet: str, level: int, ndims: int = 2, axes: Union[collections.abc.Sequence[int], numpy.typing.NDArray, None] = None, pad_on_demand: str = 'constant', upd_mask: Optional[numpy.typing.NDArray] = None, normalized: bool = False, min_approx: bool = True, pwise_lvl_norm: Union[int, float] = 1, pwise_chan_norm: Union[int, float] = np.inf, x_ref: Optional[numpy.typing.NDArray] = None)[source]

Bases: corrct.regularizers.Regularizer_l1swl

l1-norm vectorial Wavelet regularizer. It can be used to promote compressed reconstructions.

Initialization

__reg_name__

‘vl1wl’

_raise_pwise_norm_error()[source]
initialize_sigma_tau(primal: numpy.typing.NDArray) Union[float, numpy.typing.NDArray][source]
apply_proximal(dual: numpy.typing.NDArray) None[source]
class corrct.regularizers.Regularizer_vSVD(weight: Union[float, numpy.typing.NDArray], ndims: int = 2, axes: Union[collections.abc.Sequence[int], numpy.typing.NDArray, None] = None, axis_channels: collections.abc.Sequence[int] = (0,), upd_mask: Optional[numpy.typing.NDArray] = None, norm: corrct.data_terms.DataFidelityBase = dt.DataFidelity_l1())[source]

Bases: corrct.regularizers.BaseRegularizer

Regularizer based on the Singular Value Decomposition.

It can be used to promote similar reconstructions across different channels.

Initialization

__reg_name__

‘vsvd’

initialize_sigma_tau(primal: numpy.typing.NDArray) Union[float, numpy.typing.NDArray][source]
class corrct.regularizers.Constraint_LowerLimit(limit: Union[float, numpy.typing.NDArray], upd_mask: Optional[numpy.typing.NDArray] = None, norm: corrct.data_terms.DataFidelityBase = dt.DataFidelity_l2())[source]

Bases: corrct.regularizers.BaseRegularizer

Lower limit constraint. It can be used to promote reconstructions in certain regions of solution space.

Initialization

__reg_name__

‘lowlim’

info() str[source]

Return the regularizer info.

Returns

str Regularizer info string.

initialize_sigma_tau(primal: numpy.typing.NDArray) Union[float, numpy.typing.NDArray][source]
update_dual(dual: numpy.typing.NDArray, primal: numpy.typing.NDArray) None[source]
apply_proximal(dual: numpy.typing.NDArray) None[source]
class corrct.regularizers.Constraint_UpperLimit(limit: Union[float, numpy.typing.NDArray], upd_mask: Optional[numpy.typing.NDArray] = None, norm: corrct.data_terms.DataFidelityBase = dt.DataFidelity_l2())[source]

Bases: corrct.regularizers.BaseRegularizer

Upper limit constraint. It can be used to promote reconstructions in certain regions of solution space.

Initialization

__reg_name__

‘uplim’

info() str[source]

Return the regularizer info.

Returns

str Regularizer info string.

initialize_sigma_tau(primal: numpy.typing.NDArray) Union[float, numpy.typing.NDArray][source]
update_dual(dual: numpy.typing.NDArray, primal: numpy.typing.NDArray) None[source]
apply_proximal(dual: numpy.typing.NDArray) None[source]