summaryrefslogtreecommitdiffstats
path: root/Wrappers/Python
diff options
context:
space:
mode:
Diffstat (limited to 'Wrappers/Python')
-rw-r--r--Wrappers/Python/ccpi/filters/regularisers.py3
-rw-r--r--Wrappers/Python/demos/demo_cpu_inpainters.py40
2 files changed, 24 insertions, 19 deletions
diff --git a/Wrappers/Python/ccpi/filters/regularisers.py b/Wrappers/Python/ccpi/filters/regularisers.py
index e62c020..8120f72 100644
--- a/Wrappers/Python/ccpi/filters/regularisers.py
+++ b/Wrappers/Python/ccpi/filters/regularisers.py
@@ -113,5 +113,4 @@ def NDF(inputData, regularisation_parameter, edge_parameter, iterations,
def NDF_INP(inputData, maskData, regularisation_parameter, edge_parameter, iterations,
time_marching_parameter, penalty_type):
return NDF_INPAINT_CPU(inputData, maskData, regularisation_parameter,
- edge_parameter, iterationsNumb,
- time_marching_parameter, penalty_type)
+ edge_parameter, iterations, time_marching_parameter, penalty_type)
diff --git a/Wrappers/Python/demos/demo_cpu_inpainters.py b/Wrappers/Python/demos/demo_cpu_inpainters.py
index a022bc8..b067b11 100644
--- a/Wrappers/Python/demos/demo_cpu_inpainters.py
+++ b/Wrappers/Python/demos/demo_cpu_inpainters.py
@@ -20,30 +20,36 @@ def printParametersToString(pars):
txt += "{0} = {1}".format(key, value.__name__)
elif key == 'input':
txt += "{0} = {1}".format(key, np.shape(value))
- elif key == 'refdata':
+ elif key == 'maskData':
txt += "{0} = {1}".format(key, np.shape(value))
else:
txt += "{0} = {1}".format(key, value)
txt += '\n'
return txt
###############################################################################
-#%%
+
# read sinogram and the mask
filename = os.path.join(".." , ".." , ".." , "data" ,"SinoInpaint.mat")
sino = io.loadmat(filename)
-sino_no_cut = sino.get('Sinogram')
+sino_full = sino.get('Sinogram')
Mask = sino.get('Mask')
-[angles_dim,detectors_dim] = sino_no_cut.shape
-sinogram = sino_no_cut/np.max(sino_no_cut)
+[angles_dim,detectors_dim] = sino_full.shape
+sino_full = sino_full/np.max(sino_full)
#apply mask to sinogram
-sino_cut = sinogram*(1-Mask)
+sino_cut = sino_full*(1-Mask)
+sino_cut_new = np.zeros((angles_dim,detectors_dim),'float32')
+#sino_cut_new = sino_cut.copy(order='c')
+sino_cut_new[:] = sino_cut[:]
+mask = np.zeros((angles_dim,detectors_dim),'uint8')
+#mask =Mask.copy(order='c')
+mask[:] = Mask[:]
plt.figure(1)
plt.subplot(121)
-plt.imshow(sino_cut,vmin=0.0, vmax=1)
+plt.imshow(sino_cut_new,vmin=0.0, vmax=1)
plt.title('Missing Data sinogram')
plt.subplot(122)
-plt.imshow(Mask)
+plt.imshow(mask)
plt.title('Mask')
plt.show()
#%%
@@ -56,15 +62,15 @@ fig = plt.figure(2)
plt.suptitle('Performance of linear inpainting using the CPU')
a=fig.add_subplot(1,2,1)
a.set_title('Missing data sinogram')
-imgplot = plt.imshow(sino_cut,cmap="gray")
+imgplot = plt.imshow(sino_cut_new,cmap="gray")
# set parameters
pars = {'algorithm' : NDF_INP, \
- 'input' : sino_cut,\
- 'maskData' : Mask,\
- 'regularisation_parameter':6000,\
+ 'input' : sino_cut_new,\
+ 'maskData' : mask,\
+ 'regularisation_parameter':1000,\
'edge_parameter':0.0,\
- 'number_of_iterations' :5000 ,\
+ 'number_of_iterations' :1000 ,\
'time_marching_parameter':0.000075,\
'penalty_type':1
}
@@ -78,7 +84,7 @@ ndf_inp_linear = NDF_INP(pars['input'],
pars['time_marching_parameter'],
pars['penalty_type'])
-rms = rmse(sinogram, ndf_inp_linear)
+rms = rmse(sino_full, ndf_inp_linear)
pars['rmse'] = rms
txtstr = printParametersToString(pars)
@@ -107,8 +113,8 @@ imgplot = plt.imshow(sino_cut,cmap="gray")
# set parameters
pars = {'algorithm' : NDF_INP, \
- 'input' : sino_cut,\
- 'maskData' : Mask,\
+ 'input' : sino_cut_new,\
+ 'maskData' : mask,\
'regularisation_parameter':80,\
'edge_parameter':0.00009,\
'number_of_iterations' :1500 ,\
@@ -125,7 +131,7 @@ ndf_inp_nonlinear = NDF_INP(pars['input'],
pars['time_marching_parameter'],
pars['penalty_type'])
-rms = rmse(sinogram, ndf_inp_nonlinear)
+rms = rmse(sino_full, ndf_inp_nonlinear)
pars['rmse'] = rms
txtstr = printParametersToString(pars)