imicpe 1.0.8.1__tar.gz → 1.0.10__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (33) hide show
  1. {imicpe-1.0.8.1 → imicpe-1.0.10}/PKG-INFO +1 -1
  2. {imicpe-1.0.8.1 → imicpe-1.0.10}/pyproject.toml +1 -1
  3. imicpe-1.0.10/src/imicpe/_version.py +1 -0
  4. imicpe-1.0.10/src/imicpe/optim/metrics.py +64 -0
  5. {imicpe-1.0.8.1 → imicpe-1.0.10}/src/imicpe/optim/operators.py +138 -76
  6. {imicpe-1.0.8.1 → imicpe-1.0.10}/src/imicpe.egg-info/PKG-INFO +1 -1
  7. imicpe-1.0.8.1/src/imicpe/_version.py +0 -1
  8. imicpe-1.0.8.1/src/imicpe/optim/metrics.py +0 -9
  9. {imicpe-1.0.8.1 → imicpe-1.0.10}/DESCRIPTION.md +0 -0
  10. {imicpe-1.0.8.1 → imicpe-1.0.10}/LICENSE +0 -0
  11. {imicpe-1.0.8.1 → imicpe-1.0.10}/README.md +0 -0
  12. {imicpe-1.0.8.1 → imicpe-1.0.10}/setup.cfg +0 -0
  13. {imicpe-1.0.8.1 → imicpe-1.0.10}/src/imicpe/__init__.py +0 -0
  14. {imicpe-1.0.8.1 → imicpe-1.0.10}/src/imicpe/cs/__init__.py +0 -0
  15. {imicpe-1.0.8.1 → imicpe-1.0.10}/src/imicpe/cs/l1.py +0 -0
  16. {imicpe-1.0.8.1 → imicpe-1.0.10}/src/imicpe/cs/masks.py +0 -0
  17. {imicpe-1.0.8.1 → imicpe-1.0.10}/src/imicpe/cs/metrics.py +0 -0
  18. {imicpe-1.0.8.1 → imicpe-1.0.10}/src/imicpe/cs/operators.py +0 -0
  19. {imicpe-1.0.8.1 → imicpe-1.0.10}/src/imicpe/cs/shepp_logan_phantom.py +0 -0
  20. {imicpe-1.0.8.1 → imicpe-1.0.10}/src/imicpe/cs/tikhonov.py +0 -0
  21. {imicpe-1.0.8.1 → imicpe-1.0.10}/src/imicpe/optim/__init__.py +0 -0
  22. {imicpe-1.0.8.1 → imicpe-1.0.10}/src/imicpe/optim/pnnDataset.py +0 -0
  23. {imicpe-1.0.8.1 → imicpe-1.0.10}/src/imicpe/optim/pnnTrainer.py +0 -0
  24. {imicpe-1.0.8.1 → imicpe-1.0.10}/src/imicpe/optim/pnnUtils.py +0 -0
  25. {imicpe-1.0.8.1 → imicpe-1.0.10}/src/imicpe/reco3D/__init__.py +0 -0
  26. {imicpe-1.0.8.1 → imicpe-1.0.10}/src/imicpe/reco3D/angles.py +0 -0
  27. {imicpe-1.0.8.1 → imicpe-1.0.10}/src/imicpe/reco3D/calculPose.py +0 -0
  28. {imicpe-1.0.8.1 → imicpe-1.0.10}/src/imicpe/reco3D/evalTrajecto.py +0 -0
  29. {imicpe-1.0.8.1 → imicpe-1.0.10}/src/imicpe/reco3D/vue3D.py +0 -0
  30. {imicpe-1.0.8.1 → imicpe-1.0.10}/src/imicpe.egg-info/SOURCES.txt +0 -0
  31. {imicpe-1.0.8.1 → imicpe-1.0.10}/src/imicpe.egg-info/dependency_links.txt +0 -0
  32. {imicpe-1.0.8.1 → imicpe-1.0.10}/src/imicpe.egg-info/requires.txt +0 -0
  33. {imicpe-1.0.8.1 → imicpe-1.0.10}/src/imicpe.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: imicpe
3
- Version: 1.0.8.1
3
+ Version: 1.0.10
4
4
  Summary: Toolbox for Maths,Signal,Image Teaching @ CPE
5
5
  Author-email: Marion Foare <marion.foare@cpe.fr>, Eric Van Reeth <eric.vanreeth@cpe.fr>, Arthur Gautheron <arthur.gautheron@cpe.fr>
6
6
  License: MIT License
@@ -14,7 +14,7 @@ mypkg = ["*.txt", "*.mat", "*.npy"]
14
14
  #[tool.setuptools_scm]
15
15
 
16
16
  [project]
17
- version="1.0.8.1"
17
+ version="1.0.10"
18
18
  name = "imicpe"
19
19
  authors = [
20
20
  { name="Marion Foare", email="marion.foare@cpe.fr" },
@@ -0,0 +1 @@
1
+ __version__="1.0.10"
@@ -0,0 +1,64 @@
1
+ import numpy as np
2
+ import torch
3
+ from skimage.metrics import structural_similarity as ssim
4
+
5
+ def mse(I,ref):
6
+ """ Calcule la MSE
7
+
8
+ Parameters
9
+ ----------
10
+ I : (numpy.ndarray)
11
+ signal 1D OU image NON vectorisée 2D dégradé(e)
12
+
13
+ ref : (numpy.ndarray)
14
+ vérité terrain (signal 1D OU image NON vectorisée 2D)
15
+
16
+
17
+ Returns
18
+ -------
19
+ : (float)
20
+ Valeur de MSE
21
+ """
22
+
23
+ return np.round(np.sum((I-ref)**2)/I.size,5)
24
+
25
+ def snr(I,ref):
26
+ """ Calcule le SNR
27
+
28
+ Parameters
29
+ ----------
30
+ I : (numpy.ndarray)
31
+ signal 1D OU image NON vectorisée 2D dégradé(e)
32
+
33
+ ref : (numpy.ndarray)
34
+ vérité terrain (signal 1D OU image NON vectorisée 2D)
35
+
36
+
37
+ Returns
38
+ -------
39
+ : (float)
40
+ Valeur de SNR
41
+ """
42
+ return np.round(10* np.log10(np.sum(ref**2)/np.sum((I-ref)**2)),2)
43
+
44
+ def ssim(I,ref):
45
+ """ Calcule le SSIM
46
+
47
+ Parameters
48
+ ----------
49
+ I : (numpy.ndarray)
50
+ signal 1D OU image NON vectorisée 2D dégradé(e)
51
+
52
+ ref : (numpy.ndarray)
53
+ vérité terrain (signal 1D OU image NON vectorisée 2D)
54
+
55
+
56
+ Returns
57
+ -------
58
+ : (float)
59
+ Valeur de SSIM
60
+ """
61
+
62
+ return np.round(ssim(img, img_noise, data_range=img_noise.max() - img_noise.min())
63
+ ,3)
64
+
@@ -8,12 +8,16 @@ import scipy.sparse as sp
8
8
  ############################################################
9
9
  def Id(x):
10
10
  """Opérateur identité
11
-
12
- Args:
13
- X (numpy.ndarray) signal 1D ou: image non vectorisée 2D
14
-
15
- Returns:
16
- (numpy.ndarray) X
11
+
12
+ Parameters
13
+ ----------
14
+ X : (numpy.ndarray)
15
+ signal 1D OU image NON vectorisée 2D
16
+
17
+ Returns
18
+ -------
19
+ : (numpy.ndarray)
20
+ X
17
21
  """
18
22
 
19
23
  return x
@@ -27,12 +31,15 @@ def D(x):
27
31
  """Calcule le gradient par différences finies à droite.
28
32
  Autrement dit, D(x) calcule le produit matriciel Dx.
29
33
 
30
- Args:
31
- X (numpy.ndarray) signal 1D
32
- ou: image non vectorisée 2D
33
-
34
- Returns:
35
- (numpy.ndarray) Gradient de X
34
+ Parameters
35
+ ----------
36
+ X : (numpy.ndarray)
37
+ signal 1D OU image NON vectorisée 2D
38
+
39
+ Returns
40
+ -------
41
+ : (numpy.ndarray)
42
+ Gradient de X
36
43
  """
37
44
 
38
45
  if x.ndim == 1:
@@ -50,12 +57,15 @@ def Dt(x):
50
57
  """Calcule l’adjoint gradient par différences finies à droite.
51
58
  Autrement dit, Dt(x) calcule le produit matriciel D'x.
52
59
 
53
- Args:
54
- X (numpy.ndarray) signal 1D
55
- ou: image non vectorisée 2D
56
-
57
- Returns:
58
- (numpy.ndarray) Divergence de X
60
+ Parameters
61
+ ----------
62
+ X : (numpy.ndarray)
63
+ signal 1D OU image NON vectorisée 2D
64
+
65
+ Returns
66
+ -------
67
+ : (numpy.ndarray)
68
+ Divergence de X
59
69
  """
60
70
 
61
71
  if x.ndim == 1:
@@ -73,12 +83,15 @@ def L(x):
73
83
  """Calcule la dérivée seconde d’un signal, ou le laplacien dans le cas d’une image.
74
84
  Autrement dit, L(x) calcule le produit matriciel Lx.
75
85
 
76
- Args:
77
- X (numpy.ndarray) signal 1D
78
- ou: image non vectorisée 2D
86
+ Parameters
87
+ ----------
88
+ X : (numpy.ndarray)
89
+ signal 1D OU image NON vectorisée 2D
79
90
 
80
- Returns:
81
- (numpy.ndarray) Laplacien de X
91
+ Returns
92
+ -------
93
+ : (numpy.ndarray)
94
+ Laplacien de X
82
95
  """
83
96
 
84
97
  if x.ndim == 1:
@@ -95,12 +108,15 @@ def Lt(x):
95
108
  """Calcule l’adjoint du laplacien.
96
109
  Autrement dit, Lt(x) calcule le produit matriciel L'x.
97
110
 
98
- Args:
99
- X (numpy.ndarray) signal 1D
100
- ou: image non vectorisée 2D
111
+ Parameters
112
+ ----------
113
+ X : (numpy.ndarray)
114
+ signal 1D OU image NON vectorisée 2D
101
115
 
102
- Returns:
103
- (numpy.ndarray) Adjoint du Laplacien de X
116
+ Returns
117
+ -------
118
+ : (numpy.ndarray)
119
+ Adjoint du Laplacien de X
104
120
  """
105
121
 
106
122
  if x.ndim == 1:
@@ -114,18 +130,25 @@ def Lt(x):
114
130
  return lap
115
131
 
116
132
  def generateDiff3D(vert, faces, dtype):
117
- """
118
- generateDiff3D Génère la matrice de différentiation de type DTYPE (ordre 1 ou 2) en 3D
133
+ """Génère la matrice de différentiation de type DTYPE (ordre 1 ou 2) en 3D
134
+
135
+ Parameters
136
+ ----------
137
+ VERT : (numpy.ndarray)
138
+ matrice Nx3 dont la i-ème ligne correspond au vecteur
139
+ de coordonnées (X,Y,Z) du i-ème point du maillage
119
140
 
120
- Args:
121
- VERT (numpy.ndarray) matrice Nx3 dont la i-ème ligne correspond au vecteur
122
- de coordonnées (X,Y,Z) du i-ème point du maillage
123
- FACES (numpy.ndarray) matrice Nx3 dont la i-ème ligne donne les numéros des
124
- 3 points composant un triangle du maillage
125
- DTYPE(str) 'gradient', 'laplacian'
141
+ FACES : (numpy.ndarray)
142
+ matrice Nx3 dont la i-ème ligne donne les numéros des
143
+ 3 points composant un triangle du maillage
126
144
 
127
- Returns:
128
- (numpy.ndarray) matrice 3D de différentiation de type DTYPE
145
+ DTYPE : (str)
146
+ 'gradient', 'laplacian'
147
+
148
+ Returns
149
+ -------
150
+ : (numpy.ndarray)
151
+ matrice 3D de différentiation de type DTYPE
129
152
  """
130
153
 
131
154
  if dtype == 'gradient':
@@ -197,16 +220,24 @@ def generateDiff3D(vert, faces, dtype):
197
220
  def generatePSF(dim,blurtype,kernelSize):
198
221
  """Génère le noyau de convolution d’un flou de dimension DIM, de type BLURTYPE,
199
222
  et de taille KERNELSIZE.
223
+
224
+ -> voir les fonctions A(x,h) et At(x,h).
200
225
 
201
- Args:
202
- DIM (str) ’1D’ ou ’2D’
203
- BLURTYPE (str) ’none’, ’gaussian’ ou ’uniform’
204
- KERNELSIZE (int) entier impair
205
-
206
- Returns:
207
- (numpy.ndarray) Noyau de convolution
226
+ Parameters
227
+ ----------
228
+ DIM : (str)
229
+ ’1D’ ou ’2D’
208
230
 
209
- -> voir les fonctions A(x,h) et At(x,h).
231
+ BLURTYPE : (str)
232
+ ’none’, ’gaussian’ ou ’uniform’
233
+
234
+ KERNELSIZE : (int)
235
+ entier impair
236
+
237
+ Returns
238
+ -------
239
+ : (numpy.ndarray)
240
+ Noyau de convolution
210
241
  """
211
242
 
212
243
  # compute kernel
@@ -238,13 +269,19 @@ def A(x,psf):
238
269
  Autrement dit, A(x,h) calcule le produit de convolution h*x, ou de manière équivalente, calcule
239
270
  le produit matriciel Hx.
240
271
 
241
- Args:
242
- X (numpy.ndarray) signal 1D
243
- ou: image non vectorisée 2D
244
- PSF (numpy.ndarray) doit être générée à partir de la fonction generatePSF
245
272
 
246
- Returns:
247
- (numpy.ndarray) Convolution de X par le noyau PSF
273
+ Parameters
274
+ ----------
275
+ X : (numpy.ndarray)
276
+ signal 1D OU image NON vectorisée 2D
277
+
278
+ PSF : (numpy.ndarray)
279
+ doit être générée à partir de la fonction generatePSF
280
+
281
+ Returns
282
+ -------
283
+ : (numpy.ndarray)
284
+ Convolution de X par le noyau PSF
248
285
  """
249
286
 
250
287
  if x.ndim == 1:
@@ -259,13 +296,18 @@ def At(x,psf):
259
296
  Autrement dit, A(x,h) calcule le produit de convolution h'*x, ou de manière équivalente, calcule
260
297
  le produit matriciel H'x.
261
298
 
262
- Args:
263
- X (numpy.ndarray) signal 1D
264
- ou: image non vectorisée 2D
265
- PSF (numpy.ndarray) doit être générée à partir de la fonction generatePSF
299
+ Parameters
300
+ ----------
301
+ X : (numpy.ndarray)
302
+ signal 1D OU image NON vectorisée 2D
266
303
 
267
- Returns:
268
- (numpy.ndarray) Correlation de X par le noyau PSF
304
+ PSF : (numpy.ndarray)
305
+ doit être générée à partir de la fonction generatePSF
306
+
307
+ Returns
308
+ -------
309
+ : (numpy.ndarray)
310
+ Correlation de X par le noyau PSF
269
311
  """
270
312
 
271
313
  if x.ndim == 1:
@@ -283,11 +325,15 @@ def At(x,psf):
283
325
  def S(x):
284
326
  """Convolue X avec un noyau KER.
285
327
 
286
- Args:
287
- X (numpy.ndarray) image non vectorisée 2D
328
+ Parameters
329
+ ----------
330
+ X : (numpy.ndarray)
331
+ signal 1D OU image NON vectorisée 2D
288
332
 
289
- Returns:
290
- (numpy.ndarray) Convolution de X par le noyau KER
333
+ Returns
334
+ -------
335
+ : (numpy.ndarray)
336
+ Convolution de X par le noyau KER
291
337
  """
292
338
 
293
339
  h,w = x.shape
@@ -307,11 +353,15 @@ def S(x):
307
353
  def St(x):
308
354
  """Corrèle X avec un noyau KER.
309
355
 
310
- Args:
311
- X (numpy.ndarray) image non vectorisée 2D
356
+ Parameters
357
+ ----------
358
+ X : (numpy.ndarray)
359
+ signal 1D OU image NON vectorisée 2D
312
360
 
313
- Returns:
314
- (numpy.ndarray) Correlation de X par le noyau KER
361
+ Returns
362
+ -------
363
+ : (numpy.ndarray)
364
+ Correlation de X par le noyau KER
315
365
  """
316
366
 
317
367
  h,w = x.shape
@@ -337,13 +387,21 @@ def opNorm(op,opt,dim):
337
387
  """Calcule la norme de l'opérateur OP, dont
338
388
  l'opérateur transposé est OPT, en dimension DIM
339
389
 
340
- Args:
341
- OP (function) opérateur direct
342
- OPT (function) opérateur adjoint
343
- DIM (str) '1D', '2D'
390
+ Parameters
391
+ ----------
392
+ OP : (function)
393
+ opérateur direct
394
+
395
+ OPT : (function)
396
+ opérateur adjoint
397
+
398
+ DIM : (str)
399
+ '1D', '2D'
344
400
 
345
- Returns:
346
- (float) norme de l'opérateur OP
401
+ Returns
402
+ -------
403
+ : (float)
404
+ norme de l'opérateur OP
347
405
  """
348
406
 
349
407
  def T(x):
@@ -378,11 +436,15 @@ def opNorm(op,opt,dim):
378
436
  def matNorm(M):
379
437
  """Calcule la norme de la matrice M
380
438
 
381
- Args:
382
- M (numpy.ndarray) matrice dont on souhaite calculer la norme
439
+ Parameters
440
+ ----------
441
+ M : (numpy.ndarray)
442
+ matrice dont on souhaite calculer la norme
383
443
 
384
- Returns:
385
- (float) norme de la matrice M
444
+ Returns
445
+ -------
446
+ : (float)
447
+ norme de la matrice M
386
448
  """
387
449
 
388
450
  def T(x):
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: imicpe
3
- Version: 1.0.8.1
3
+ Version: 1.0.10
4
4
  Summary: Toolbox for Maths,Signal,Image Teaching @ CPE
5
5
  Author-email: Marion Foare <marion.foare@cpe.fr>, Eric Van Reeth <eric.vanreeth@cpe.fr>, Arthur Gautheron <arthur.gautheron@cpe.fr>
6
6
  License: MIT License
@@ -1 +0,0 @@
1
- __version__="1.0.8.1"
@@ -1,9 +0,0 @@
1
- import numpy as np
2
- import torch
3
-
4
- def mse(I,ref):
5
- return np.round(np.sum((I-ref)**2)/I.size,5)
6
-
7
- def snr(I,ref):
8
- return np.round(10* np.log10(np.sum(ref**2)/np.sum((I-ref)**2)),2)
9
-
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes