DHEIVER commited on
Commit
e0dd397
·
verified ·
1 Parent(s): 0127bb4

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +68 -11
app.py CHANGED
@@ -397,25 +397,82 @@ def analisar_textura_setorial(imagem, iris_info, pupil_info):
397
 
398
  def avaliar_setores(setores):
399
  """
400
- Avalia os setores com limiares ajustados para os novos valores
401
  """
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
402
  for setor, dados in setores.items():
403
  mensagens = []
404
 
405
- # Limiares ajustados para os novos valores de contraste
406
- if dados['contraste'] > 5:
407
- mensagens.append("Alta densidade de sinais")
408
- elif dados['contraste'] < 1:
409
- mensagens.append("Baixa densidade de sinais")
410
-
411
- if dados['homogeneidade'] < 0.3:
412
- mensagens.append("Possível área de alteração")
413
- elif dados['homogeneidade'] > 0.8:
414
- mensagens.append("Área homogênea e saudável")
 
 
 
 
 
 
 
 
 
415
 
416
  dados['interpretacao'] = mensagens
 
 
 
 
 
 
 
 
417
 
418
  return setores
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
419
 
420
  def analisar_collarette(imagem, iris_info, pupil_info):
421
  """
 
397
 
398
  def avaliar_setores(setores):
399
  """
400
+ Avalia os setores com limiares recalibrados baseados nos dados observados
401
  """
402
+ # Calcular estatísticas globais para calibração dinâmica
403
+ contrastes = [dados['contraste'] for dados in setores.values()]
404
+ homogeneidades = [dados['homogeneidade'] for dados in setores.values()]
405
+
406
+ # Calcular limiares dinâmicos
407
+ contraste_medio = np.mean(contrastes)
408
+ contraste_std = np.std(contrastes)
409
+ homog_media = np.mean(homogeneidades)
410
+ homog_std = np.std(homogeneidades)
411
+
412
+ # Definir limiares baseados nas estatísticas
413
+ limiar_contraste_alto = contraste_medio + contraste_std
414
+ limiar_contraste_baixo = contraste_medio - contraste_std
415
+ limiar_homog_baixo = homog_media - homog_std
416
+ limiar_homog_alto = homog_media + homog_std
417
+
418
  for setor, dados in setores.items():
419
  mensagens = []
420
 
421
+ # Análise de contraste recalibrada
422
+ if dados['contraste'] > limiar_contraste_alto:
423
+ mensagens.append("Densidade muito alta de sinais")
424
+ elif dados['contraste'] > contraste_medio:
425
+ mensagens.append("Densidade moderadamente alta de sinais")
426
+ elif dados['contraste'] < limiar_contraste_baixo:
427
+ mensagens.append("Densidade baixa de sinais")
428
+
429
+ # Análise de homogeneidade recalibrada
430
+ if dados['homogeneidade'] < limiar_homog_baixo:
431
+ mensagens.append("Alterações significativas na textura")
432
+ elif dados['homogeneidade'] < homog_media:
433
+ mensagens.append("Possíveis alterações sutis")
434
+ elif dados['homogeneidade'] > limiar_homog_alto:
435
+ mensagens.append("Textura muito homogênea")
436
+
437
+ # Análise combinada
438
+ if dados['contraste'] > limiar_contraste_alto and dados['homogeneidade'] < limiar_homog_baixo:
439
+ mensagens.append("Área que requer atenção especial")
440
 
441
  dados['interpretacao'] = mensagens
442
+
443
+ # Adicionar métricas de referência
444
+ dados['metricas_referencia'] = {
445
+ 'contraste_medio': float(contraste_medio),
446
+ 'contraste_std': float(contraste_std),
447
+ 'homog_media': float(homog_media),
448
+ 'homog_std': float(homog_std)
449
+ }
450
 
451
  return setores
452
+
453
+ def gerar_relatorio_setorial(setores_analisados):
454
+ """
455
+ Gera relatório setorial com informações de referência
456
+ """
457
+ relatorio = "\n2. ANÁLISE SETORIAL\n"
458
+
459
+ # Adicionar informações de referência
460
+ if setores_analisados and 'metricas_referencia' in list(setores_analisados.values())[0]:
461
+ ref = list(setores_analisados.values())[0]['metricas_referencia']
462
+ relatorio += "\nValores de Referência:\n"
463
+ relatorio += f"- Contraste Médio: {ref['contraste_medio']:.2f} (±{ref['contraste_std']:.2f})\n"
464
+ relatorio += f"- Homogeneidade Média: {ref['homog_media']:.2f} (±{ref['homog_std']:.2f})\n\n"
465
+
466
+ for setor, dados in setores_analisados.items():
467
+ relatorio += f"\n{setor}:\n"
468
+ relatorio += f"- Contraste: {dados['contraste']:.2f}\n"
469
+ relatorio += f"- Homogeneidade: {dados['homogeneidade']:.2f}\n"
470
+
471
+ if 'interpretacao' in dados:
472
+ for msg in dados['interpretacao']:
473
+ relatorio += f" * {msg}\n"
474
+
475
+ return relatorio
476
 
477
  def analisar_collarette(imagem, iris_info, pupil_info):
478
  """