Update app.py
Browse files
app.py
CHANGED
@@ -78,7 +78,6 @@ from scipy.spatial import distance
|
|
78 |
from scipy.ndimage import label
|
79 |
import numpy as np
|
80 |
|
81 |
-
|
82 |
def processar_imagem_de_entrada_wrapper(img, modelo):
|
83 |
model = models[modelo]
|
84 |
spent, img_out = processar_imagem_de_entrada(img, modelo, model)
|
@@ -94,24 +93,23 @@ def processar_imagem_de_entrada_wrapper(img, modelo):
|
|
94 |
num_clusters = len(cluster_centers)
|
95 |
cluster_features = []
|
96 |
for i in range(num_clusters):
|
97 |
-
|
98 |
|
99 |
# Calcular área do cluster
|
100 |
-
area =
|
|
|
|
|
|
|
101 |
|
102 |
# Calcular forma do cluster usando a relação entre área e perímetro
|
103 |
-
_, contours, _ = cv2.findContours(np.uint8(
|
104 |
perimeter = cv2.arcLength(contours[0], True)
|
105 |
compactness = 4 * np.pi * area / (perimeter ** 2)
|
106 |
|
107 |
cluster_features.append({'area': area, 'compactness': compactness})
|
108 |
|
109 |
# Decidir se há doença com base nas características dos clusters
|
110 |
-
has_disease_flag =
|
111 |
-
for feature in cluster_features:
|
112 |
-
if feature['area'] >= 200 and feature['compactness'] < 0.3:
|
113 |
-
has_disease_flag = True
|
114 |
-
break
|
115 |
|
116 |
# Formatar o indicador de doença como uma string
|
117 |
if has_disease_flag:
|
|
|
78 |
from scipy.ndimage import label
|
79 |
import numpy as np
|
80 |
|
|
|
81 |
def processar_imagem_de_entrada_wrapper(img, modelo):
|
82 |
model = models[modelo]
|
83 |
spent, img_out = processar_imagem_de_entrada(img, modelo, model)
|
|
|
93 |
num_clusters = len(cluster_centers)
|
94 |
cluster_features = []
|
95 |
for i in range(num_clusters):
|
96 |
+
cluster_mask = labels == i # Create a boolean mask for the cluster
|
97 |
|
98 |
# Calcular área do cluster
|
99 |
+
area = np.sum(cluster_mask)
|
100 |
+
|
101 |
+
if area == 0: # Skip empty clusters
|
102 |
+
continue
|
103 |
|
104 |
# Calcular forma do cluster usando a relação entre área e perímetro
|
105 |
+
_, contours, _ = cv2.findContours(np.uint8(cluster_mask), cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
|
106 |
perimeter = cv2.arcLength(contours[0], True)
|
107 |
compactness = 4 * np.pi * area / (perimeter ** 2)
|
108 |
|
109 |
cluster_features.append({'area': area, 'compactness': compactness})
|
110 |
|
111 |
# Decidir se há doença com base nas características dos clusters
|
112 |
+
has_disease_flag = any(feature['area'] >= 200 and feature['compactness'] < 0.3 for feature in cluster_features)
|
|
|
|
|
|
|
|
|
113 |
|
114 |
# Formatar o indicador de doença como uma string
|
115 |
if has_disease_flag:
|