marrtinagg commited on
Commit
30a2053
1 Parent(s): e010b3f

Edit app.py

Browse files
Files changed (1) hide show
  1. app.py +24 -5
app.py CHANGED
@@ -9,6 +9,12 @@ from tensorflow.keras.preprocessing import image
9
  from preprocessing.zoom import apply_zoom
10
  from preprocessing.hair_removal import quitar_pelos
11
  from preprocessing.segmentation import segmentar_lesion
 
 
 
 
 
 
12
 
13
  # Tama帽o de entrada del modelo
14
  ROWS, COLS = 224, 224
@@ -42,10 +48,23 @@ def preprocess_and_predict(img_input):
42
  classes = ["Benign", "Malignant"]
43
  pred_idx = np.argmax(probs)
44
  pred_label = classes[pred_idx]
45
-
46
  result_text = f"Predicci贸n: {pred_label} ({probs[pred_idx]*100:.2f}%)"
47
 
48
- return mask, lesion_rgb, result_text
 
 
 
 
 
 
 
 
 
 
 
 
 
 
49
 
50
  # === Interfaz Gradio ===
51
  demo = gr.Interface(
@@ -54,12 +73,12 @@ demo = gr.Interface(
54
  outputs=[
55
  gr.Image(type="numpy", label="M谩scara Binaria"),
56
  gr.Image(type="numpy", label="Lesi贸n Segmentada"),
57
- gr.Textbox(label="Resultado del Modelo")
 
58
  ],
59
  title="DermaScan - Clasificaci贸n de Lesiones",
60
- description="Sube una imagen de piel. El sistema segmenta la lesi贸n, muestra la m谩scara y la predicci贸n (benigno vs maligno)."
61
  )
62
 
63
  if __name__ == "__main__":
64
  demo.launch()
65
-
 
9
  from preprocessing.zoom import apply_zoom
10
  from preprocessing.hair_removal import quitar_pelos
11
  from preprocessing.segmentation import segmentar_lesion
12
+ from preprocessing.metrics import (
13
+ calcular_area,
14
+ calcular_perimetro,
15
+ calcular_circularidad,
16
+ calcular_simetria
17
+ )
18
 
19
  # Tama帽o de entrada del modelo
20
  ROWS, COLS = 224, 224
 
48
  classes = ["Benign", "Malignant"]
49
  pred_idx = np.argmax(probs)
50
  pred_label = classes[pred_idx]
 
51
  result_text = f"Predicci贸n: {pred_label} ({probs[pred_idx]*100:.2f}%)"
52
 
53
+ # 6. Calcular m茅tricas geom茅tricas
54
+ area = calcular_area(mask)
55
+ perim = calcular_perimetro(mask)
56
+ circ = calcular_circularidad(mask)
57
+ sim_v, sim_h = calcular_simetria(mask)
58
+
59
+ metrics_text = (
60
+ f"脕rea: {area}\n"
61
+ f"Per铆metro: {perim}\n"
62
+ f"Circularidad: {circ}\n"
63
+ f"Simetr铆a Vertical: {sim_v}\n"
64
+ f"Simetr铆a Horizontal: {sim_h}"
65
+ )
66
+
67
+ return mask, lesion_rgb, result_text, metrics_text
68
 
69
  # === Interfaz Gradio ===
70
  demo = gr.Interface(
 
73
  outputs=[
74
  gr.Image(type="numpy", label="M谩scara Binaria"),
75
  gr.Image(type="numpy", label="Lesi贸n Segmentada"),
76
+ gr.Textbox(label="Resultado del Modelo"),
77
+ gr.Textbox(label="M茅tricas de la Lesi贸n")
78
  ],
79
  title="DermaScan - Clasificaci贸n de Lesiones",
80
+ description="Sube una imagen de piel. El sistema segmenta la lesi贸n, muestra la m谩scara, la predicci贸n y m茅tricas geom茅tricas."
81
  )
82
 
83
  if __name__ == "__main__":
84
  demo.launch()