def proximal_numpy(self, in_arr, tau, out = None): res , info = regularisers.FGP_dTV(\ in_arr,\ self.reference,\ self.alpha*tau,\ self.max_iteration,\ self.tolerance,\ self.eta,\ self.methodTV,\ self.nonnegativity,\ self.device) return res, info
def test_functionality_FGP_dTV(self): data = dataexample.CAMERA.get(size=(256,256)) datarr = data.as_array() ref = data*0.3 from cil.plugins.ccpi_regularisation.functions import FGP_dTV from ccpi.filters import regularisers tau = 1. fcil = FGP_dTV(ref) outcil = fcil.proximal(data, tau=tau) # use CIL defaults outrgl, info = regularisers.FGP_dTV(datarr, ref.as_array(), fcil.alpha*tau, fcil.max_iteration, fcil.tolerance, 0.01, 0, 1, 'cpu' ) np.testing.assert_almost_equal(outrgl, outcil.as_array())
def proximal(self, x, tau, out=None): in_arr = np.asarray(x.as_array(), dtype=np.float32, order='C') res , info = regularisers.FGP_dTV(\ in_arr,\ self.reference,\ self.alpha*tau,\ self.max_iteration,\ self.tolerance,\ self.eta,\ self.methodTV,\ self.nonnegativity,\ self.device) if out is not None: out.fill(res) else: out = x.copy() out.fill(res) return out
def proximal(self, x, tau, out=None): pars = {'algorithm' : FGP_dTV, \ 'input' : np.asarray(x.as_array(), dtype=np.float32),\ 'regularization_parameter':self.lambdaReg*tau, \ 'number_of_iterations' :self.iterationsTV ,\ 'tolerance_constant':self.tolerance,\ 'methodTV': self.methodTV ,\ 'nonneg': self.nonnegativity ,\ 'eta_const' : self.eta,\ 'refdata':self.refData} #inputData, refdata, regularisation_parameter, iterations, # tolerance_param, eta_const, methodTV, nonneg, device='cpu' res, info = regularisers.FGP_dTV(pars['input'], pars['refdata'], pars['regularization_parameter'], pars['number_of_iterations'], pars['tolerance_constant'], pars['eta_const'], pars['methodTV'], pars['nonneg'], self.device) if out is not None: out.fill(res) else: out = x.copy() out.fill(res) return out