Spaces:
Sleeping
Sleeping
Update app.py
Browse files
app.py
CHANGED
@@ -324,7 +324,66 @@ class IrisAnalyzer:
|
|
324 |
else:
|
325 |
return "baixa"
|
326 |
|
327 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
328 |
if img is None:
|
329 |
return [None] * 5, gr.Warning("Por favor, carregue uma imagem.")
|
330 |
|
|
|
324 |
else:
|
325 |
return "baixa"
|
326 |
|
327 |
+
def process_image(img):
|
328 |
+
if img is None:
|
329 |
+
return [None] * 5, gr.Warning("Por favor, carregue uma imagem.")
|
330 |
+
|
331 |
+
analyzer = IrisAnalyzer()
|
332 |
+
processed_img, results = analyzer.analyze_iris(img)
|
333 |
+
|
334 |
+
# Relatório Geral
|
335 |
+
general_report = "# 📊 Visão Geral da Análise\n\n"
|
336 |
+
status_counts = {"baixa": 0, "media": 0, "alta": 0}
|
337 |
+
for analysis in results["analysis"].values():
|
338 |
+
status_counts[analysis["status"]] += 1
|
339 |
+
|
340 |
+
health_score = ((status_counts["alta"] * 100) + (status_counts["media"] * 50)) / len(results["analysis"])
|
341 |
+
general_report += f"**Índice de Saúde Geral:** {health_score:.1f}%\n\n"
|
342 |
+
general_report += f"**Data da Análise:** {results['timestamp']}\n\n"
|
343 |
+
general_report += "**Qualidade da Imagem:** {:.1f}%\n\n".format(results['metrics']['image_quality'])
|
344 |
+
|
345 |
+
# Condições Detalhadas
|
346 |
+
detailed_conditions = "# 🔍 Análise Detalhada por Zona\n\n"
|
347 |
+
for zone_name, analysis in results["analysis"].items():
|
348 |
+
detailed_conditions += f"## {zone_name}\n\n"
|
349 |
+
detailed_conditions += "### Condições Identificadas:\n"
|
350 |
+
for condition in analysis["conditions"]:
|
351 |
+
detailed_conditions += f"- {condition}\n"
|
352 |
+
detailed_conditions += f"\n**Status:** {analysis['status'].title()}\n"
|
353 |
+
detailed_conditions += f"**Confiança da Análise:** {analysis['confianca_analise']}\n"
|
354 |
+
detailed_conditions += "**Métricas Detalhadas:**\n"
|
355 |
+
for metric, value in analysis["metrics"].items():
|
356 |
+
detailed_conditions += f"- {metric.replace('_', ' ').title()}: {value:.1f}\n"
|
357 |
+
detailed_conditions += "\n"
|
358 |
+
|
359 |
+
# Recomendações
|
360 |
+
recommendations = "# 💡 Recomendações Personalizadas\n\n"
|
361 |
+
for zone_name, analysis in results["analysis"].items():
|
362 |
+
recommendations += f"## {zone_name}\n\n"
|
363 |
+
for rec in analysis["recommendations"]:
|
364 |
+
recommendations += f"- {rec}\n"
|
365 |
+
recommendations += "\n"
|
366 |
+
|
367 |
+
# Alertas de Saúde
|
368 |
+
health_alerts = "# ⚠️ Alertas e Atenção Especial\n\n"
|
369 |
+
for zone_name, analysis in results["analysis"].items():
|
370 |
+
if analysis["status"] == "baixa" or analysis["metrics"]["health_score"] < 50:
|
371 |
+
health_alerts += f"## {zone_name}\n"
|
372 |
+
health_alerts += "### Pontos de Atenção:\n"
|
373 |
+
for condition in analysis["conditions"]:
|
374 |
+
health_alerts += f"- ⚠️ {condition}\n"
|
375 |
+
health_alerts += "\n### Ações Recomendadas:\n"
|
376 |
+
for rec in analysis["recommendations"]:
|
377 |
+
health_alerts += f"- ✅ {rec}\n"
|
378 |
+
health_alerts += "\n"
|
379 |
+
|
380 |
+
return [
|
381 |
+
processed_img,
|
382 |
+
general_report,
|
383 |
+
detailed_conditions,
|
384 |
+
recommendations,
|
385 |
+
health_alerts
|
386 |
+
]
|
387 |
if img is None:
|
388 |
return [None] * 5, gr.Warning("Por favor, carregue uma imagem.")
|
389 |
|