summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDaniil Kazantsev <dkazanc3@googlemail.com>2019-02-01 10:12:13 +0000
committerGitHub <noreply@github.com>2019-02-01 10:12:13 +0000
commit55a208da580243361f6f04ed6800da40507f3681 (patch)
treef29dfbd80a8bd8a343c219400672339c20475045
parentd5ae6207e1045af233b9c27f94d78a3e1e8600bd (diff)
parent3660ecf4ce9594edd6b35bd8e3c70e5c6d080ef0 (diff)
downloadregularization-55a208da580243361f6f04ed6800da40507f3681.tar.gz
regularization-55a208da580243361f6f04ed6800da40507f3681.tar.bz2
regularization-55a208da580243361f6f04ed6800da40507f3681.tar.xz
regularization-55a208da580243361f6f04ed6800da40507f3681.zip
Merge pull request #87 from vais-ral/fix_TGV
Fix tgv
-rw-r--r--Wrappers/Python/ccpi/filters/regularisers.py18
-rw-r--r--Wrappers/Python/src/cpu_regularisers.pyx10
-rw-r--r--Wrappers/Python/src/gpu_regularisers.pyx7
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,