-
Notifications
You must be signed in to change notification settings - Fork 0
/
Analisis.py
68 lines (54 loc) · 1.47 KB
/
Analisis.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
import imageio
import numpy as np
import matplotlib.pyplot as plt
import scipy.ndimage as ndi
##INICIACION
il1 = imageio.imread("./DICOM/TumorBrain1.dcm")
il2 = imageio.imread("./DICOM/TumorBrain2.dcm")
# Error
err = il1 - il2
#Error absoluto
absErr = np.abs(err)
#Error absoluto medio
meanErr = np.mean(absErr)
print(meanErr)
#Graficar
f, axes = plt.subplots(1, 4, figsize=(8, 5))
axes[0].imshow(il1)
axes[0].set_title('TumorBrain1')
axes[1].imshow(il2)
axes[1].set_title('TumorBrain2')
axes[2].imshow(err)
axes[2].set_title('Error')
axes[3].imshow(absErr)
axes[3].set_title('Error Absoluto')
for ax in axes:
ax.axis('off')
plt.show()
## MINIMIZAR COSTO DE LA FUNCION
# Se busca alinear la imagen al1 con respecto a al2
xfm = ndi.shift(il1, shift = (-8,-8))
xfm = ndi.rotate(xfm, -25, reshape = False)
# Hay que saber mas o menos cual es el valor para rotar y traladar para obtener el menor costo de la funcion
# Calcular el costo
abs_err = np.abs(xfm - il2)
mean_abs_err = np.mean(abs_err)
print(mean_abs_err)
## INSERSECCION EN LA UNION
## IOU = (il1 n il2)/(il1 u il2)
mask1 = il1 > 0
mask2 = il2 > 0
interseccion = mask1 & mask2
union = mask1 | mask2
IOU = interseccion.sum()/union.sum()
print(IOU)
#Graficar
f, axes = plt.subplots(1, 2, figsize=(8, 5))
axes[0].imshow(mask1)
axes[0].set_title('Mask1')
axes[1].imshow(mask2)
axes[1].set_title('Mask2')
for ax in axes:
ax.axis('off')
plt.show()
#Bibliografia: https://www.datacamp.com/courses/biomedical-image-analysis-in-python