diff options
-rw-r--r-- | Wrappers/Python/ccpi/filters/regularisers.py | 18 | ||||
-rw-r--r-- | Wrappers/Python/src/cpu_regularisers.pyx | 10 | ||||
-rw-r--r-- | Wrappers/Python/src/gpu_regularisers.pyx | 7 |
3 files changed, 23 insertions, 12 deletions
diff --git a/Wrappers/Python/ccpi/filters/regularisers.py b/Wrappers/Python/ccpi/filters/regularisers.py index 0a65590..588ea32 100644 --- a/Wrappers/Python/ccpi/filters/regularisers.py +++ b/Wrappers/Python/ccpi/filters/regularisers.py @@ -24,7 +24,7 @@ def ROF_TV(inputData, regularisation_parameter, iterations, time_marching_parameter) else: if not gpu_enabled and device == 'gpu': - raise ValueError ('GPU is not available') + raise ValueError ('GPU is not available') raise ValueError('Unknown device {0}. Expecting gpu or cpu'\ .format(device)) @@ -48,7 +48,7 @@ def FGP_TV(inputData, regularisation_parameter,iterations, printM) else: if not gpu_enabled and device == 'gpu': - raise ValueError ('GPU is not available') + raise ValueError ('GPU is not available') raise ValueError('Unknown device {0}. Expecting gpu or cpu'\ .format(device)) def SB_TV(inputData, regularisation_parameter, iterations, @@ -69,7 +69,7 @@ def SB_TV(inputData, regularisation_parameter, iterations, printM) else: if not gpu_enabled and device == 'gpu': - raise ValueError ('GPU is not available') + raise ValueError ('GPU is not available') raise ValueError('Unknown device {0}. Expecting gpu or cpu'\ .format(device)) def FGP_dTV(inputData, refdata, regularisation_parameter, iterations, @@ -96,7 +96,7 @@ def FGP_dTV(inputData, refdata, regularisation_parameter, iterations, printM) else: if not gpu_enabled and device == 'gpu': - raise ValueError ('GPU is not available') + raise ValueError ('GPU is not available') raise ValueError('Unknown device {0}. Expecting gpu or cpu'\ .format(device)) def TNV(inputData, regularisation_parameter, iterations, tolerance_param): @@ -125,7 +125,7 @@ def NDF(inputData, regularisation_parameter, edge_parameter, iterations, raise ValueError ('GPU is not available') raise ValueError('Unknown device {0}. Expecting gpu or cpu'\ .format(device)) -def DIFF4th(inputData, regularisation_parameter, edge_parameter, iterations, +def Diff4th(inputData, regularisation_parameter, edge_parameter, iterations, time_marching_parameter, device='cpu'): if device == 'cpu': return Diff4th_CPU(inputData, @@ -141,7 +141,7 @@ def DIFF4th(inputData, regularisation_parameter, edge_parameter, iterations, time_marching_parameter) else: if not gpu_enabled and device == 'gpu': - raise ValueError ('GPU is not available') + raise ValueError ('GPU is not available') raise ValueError('Unknown device {0}. Expecting gpu or cpu'\ .format(device)) @@ -160,7 +160,7 @@ def PatchSelect(inputData, searchwindow, patchwindow, neighbours, edge_parameter edge_parameter) else: if not gpu_enabled and device == 'gpu': - raise ValueError ('GPU is not available') + raise ValueError ('GPU is not available') raise ValueError('Unknown device {0}. Expecting gpu or cpu'\ .format(device)) @@ -191,7 +191,7 @@ def TGV(inputData, regularisation_parameter, alpha1, alpha0, iterations, LipshitzConst) else: if not gpu_enabled and device == 'gpu': - raise ValueError ('GPU is not available') + raise ValueError ('GPU is not available') raise ValueError('Unknown device {0}. Expecting gpu or cpu'\ .format(device)) def LLT_ROF(inputData, regularisation_parameterROF, regularisation_parameterLLT, iterations, @@ -202,7 +202,7 @@ def LLT_ROF(inputData, regularisation_parameterROF, regularisation_parameterLLT, return LLT_ROF_GPU(inputData, regularisation_parameterROF, regularisation_parameterLLT, iterations, time_marching_parameter) else: if not gpu_enabled and device == 'gpu': - raise ValueError ('GPU is not available') + raise ValueError ('GPU is not available') raise ValueError('Unknown device {0}. Expecting gpu or cpu'\ .format(device)) def NDF_INP(inputData, maskData, regularisation_parameter, edge_parameter, iterations, diff --git a/Wrappers/Python/src/cpu_regularisers.pyx b/Wrappers/Python/src/cpu_regularisers.pyx index 4aa3251..7d57ed1 100644 --- a/Wrappers/Python/src/cpu_regularisers.pyx +++ b/Wrappers/Python/src/cpu_regularisers.pyx @@ -199,9 +199,15 @@ def TV_SB_3D(np.ndarray[np.float32_t, ndim=3, mode="c"] inputData, #***************************************************************# def TGV_CPU(inputData, regularisation_parameter, alpha1, alpha0, iterations, LipshitzConst): if inputData.ndim == 2: - return TGV_2D(inputData, regularisation_parameter, alpha1, alpha0, iterations, LipshitzConst) + return TGV_2D(inputData, regularisation_parameter, alpha1, alpha0, + iterations, LipshitzConst) elif inputData.ndim == 3: - return 0 + shape = inputData.shape + out = inputData.copy() + for i in range(shape[0]): + out[i,:,:] = TGV_2D(inputData[i,:,:], regularisation_parameter, + alpha1, alpha0, iterations, LipshitzConst) + return out def TGV_2D(np.ndarray[np.float32_t, ndim=2, mode="c"] inputData, float regularisation_parameter, diff --git a/Wrappers/Python/src/gpu_regularisers.pyx b/Wrappers/Python/src/gpu_regularisers.pyx index 2b97865..47a6149 100644 --- a/Wrappers/Python/src/gpu_regularisers.pyx +++ b/Wrappers/Python/src/gpu_regularisers.pyx @@ -102,7 +102,12 @@ def TGV_GPU(inputData, regularisation_parameter, alpha1, alpha0, iterations, Lip if inputData.ndim == 2: return TGV2D(inputData, regularisation_parameter, alpha1, alpha0, iterations, LipshitzConst) elif inputData.ndim == 3: - return 0 + shape = inputData.shape + out = inputData.copy() + for i in range(shape[0]): + out[i,:,:] = TGV2D(inputData[i,:,:], regularisation_parameter, + alpha1, alpha0, iterations, LipshitzConst) + return out # Directional Total-variation Fast-Gradient-Projection (FGP) def dTV_FGP_GPU(inputData, refdata, |