DHEIVER commited on
Commit
af135e8
1 Parent(s): ff8277d

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +7 -9
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
- cluster_pixels = img_out[labels == i]
98
 
99
  # Calcular área do cluster
100
- area = len(cluster_pixels)
 
 
 
101
 
102
  # Calcular forma do cluster usando a relação entre área e perímetro
103
- _, contours, _ = cv2.findContours(np.uint8(labels == i), cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
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 = False
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: