Spaces:
Sleeping
Sleeping
import gradio as gr | |
from PIL import Image | |
import numpy as np | |
import cv2 | |
import torch | |
from transformers import ViTFeatureExtractor | |
from scipy.stats import entropy | |
from skimage.feature import graycomatrix, graycoprops | |
import warnings | |
warnings.filterwarnings("ignore") | |
class IridologyAnalyzer: | |
def __init__(self): | |
print("Inicializando analisador avançado...") | |
# Mapeamento de características para possíveis correlações de saúde | |
self.health_correlations = { | |
"Textura da íris": { | |
"muito complexa": { | |
"observações": ["Possível sobrecarga sistêmica", "Considerar avaliação do sistema imunológico", "Potencial tensão no sistema nervoso"], | |
"nível": "Requer atenção", | |
"recomendações": ["Avaliação médica completa", "Exames de sangue gerais", "Verificação do sistema imunológico"] | |
}, | |
"moderadamente complexa": { | |
"observações": ["Sistema em estado de adaptação", "Possível estresse moderado"], | |
"nível": "Observação", | |
"recomendações": ["Monitoramento periódico", "Considerar práticas de redução de estresse"] | |
}, | |
"simples": { | |
"observações": ["Padrão dentro do esperado"], | |
"nível": "Normal", | |
"recomendações": ["Manter hábitos saudáveis"] | |
} | |
}, | |
"Coloração": { | |
"muito rica": { | |
"observações": ["Possível atividade metabólica intensificada", "Potencial desequilíbrio hormonal"], | |
"nível": "Requer atenção", | |
"recomendações": ["Verificar níveis hormonais", "Avaliar função da tireoide"] | |
}, | |
"moderadamente": { | |
"observações": ["Metabolismo em adaptação"], | |
"nível": "Observação", | |
"recomendações": ["Monitorar níveis energéticos", "Avaliar padrões de sono"] | |
}, | |
"simples": { | |
"observações": ["Metabolismo equilibrado"], | |
"nível": "Normal", | |
"recomendações": ["Manter dieta balanceada"] | |
} | |
}, | |
"Marcas ou manchas": { | |
"complexo": { | |
"observações": ["Possível acúmulo de toxinas", "Potencial sobrecarga hepática"], | |
"nível": "Requer atenção", | |
"recomendações": ["Avaliação da função hepática", "Considerar detoxificação supervisionada"] | |
}, | |
"moderado": { | |
"observações": ["Sistema de eliminação em adaptação"], | |
"nível": "Observação", | |
"recomendações": ["Aumentar ingestão de água", "Melhorar alimentação"] | |
}, | |
"simples": { | |
"observações": ["Sistema de eliminação equilibrado"], | |
"nível": "Normal", | |
"recomendações": ["Manter hidratação adequada"] | |
} | |
}, | |
"Anéis ou círculos": { | |
"não concêntricos": { | |
"observações": ["Possível desequilíbrio circulatório", "Tensão sistêmica"], | |
"nível": "Requer atenção", | |
"recomendações": ["Verificar pressão arterial", "Avaliar circulação"] | |
}, | |
"moderadamente": { | |
"observações": ["Sistema circulatório em adaptação"], | |
"nível": "Observação", | |
"recomendações": ["Exercícios leves", "Monitorar pressão"] | |
} | |
}, | |
"Clareza geral": { | |
"baixa": { | |
"observações": ["Possível congestão sistêmica", "Fadiga celular"], | |
"nível": "Requer atenção", | |
"recomendações": ["Avaliação nutricional", "Verificar níveis de vitaminas"] | |
}, | |
"moderada": { | |
"observações": ["Sistema em processo de limpeza"], | |
"nível": "Observação", | |
"recomendações": ["Melhorar qualidade do sono", "Aumentar consumo de vegetais"] | |
}, | |
"excepcional": { | |
"observações": ["Boa vitalidade celular"], | |
"nível": "Normal", | |
"recomendações": ["Manter estilo de vida saudável"] | |
} | |
} | |
} | |
self.iris_features = { | |
"Textura da íris": self._analyze_texture, | |
"Coloração": self._analyze_color, | |
"Marcas ou manchas": self._analyze_spots, | |
"Anéis ou círculos": self._analyze_rings, | |
"Condição da pupila": self._analyze_pupil, | |
"Linhas radiais": self._analyze_lines, | |
"Pigmentação": self._analyze_pigmentation, | |
"Clareza geral": self._analyze_clarity, | |
"Estrutura do tecido": self._analyze_tissue, | |
"Marcas brancas": self._analyze_white_marks, | |
"Fibras da íris": self._analyze_fibers, | |
"Borda da íris": self._analyze_border | |
} | |
self.texture_params = { | |
'distances': [1, 2, 3], | |
'angles': [0, np.pi/4, np.pi/2, 3*np.pi/4] | |
} | |
print("Analisador avançado inicializado com sucesso!") | |
# [Previous analysis methods remain unchanged...] | |
def comprehensive_analysis(self, image): | |
"""Realiza uma análise completa e detalhada da íris com correlações de saúde.""" | |
try: | |
enhanced, original = self._preprocess_image(image) | |
results = [] | |
health_insights = [] | |
overall_health_score = 0 | |
total_features = 0 | |
for feature, analysis_func in self.iris_features.items(): | |
try: | |
description, value = analysis_func(original, enhanced) | |
results.append({ | |
"feature": feature, | |
"analysis": description, | |
"value": float(value) if value is not None else 0 | |
}) | |
# Adicionar correlações de saúde se disponíveis | |
if feature in self.health_correlations: | |
for pattern_key, correlation in self.health_correlations[feature].items(): | |
if pattern_key in description.lower(): | |
health_insights.append({ | |
"feature": feature, | |
"observações": correlation["observações"], | |
"nível": correlation["nível"], | |
"recomendações": correlation.get("recomendações", []) | |
}) | |
# Calcular score de saúde | |
if correlation["nível"] == "Normal": | |
overall_health_score += 100 | |
elif correlation["nível"] == "Observação": | |
overall_health_score += 70 | |
elif correlation["nível"] == "Requer atenção": | |
overall_health_score += 40 | |
total_features += 1 | |
except Exception as e: | |
print(f"Erro ao analisar '{feature}': {str(e)}") | |
continue | |
# Calcular score médio de saúde | |
if total_features > 0: | |
overall_health_score = overall_health_score / total_features | |
# Formatação dos resultados com disclaimer médico | |
formatted_results = """ | |
AVISO IMPORTANTE: Esta análise é apenas para fins educativos e informativos. | |
NÃO substitui diagnóstico médico profissional. Consulte sempre um profissional de saúde qualificado. | |
Análise Detalhada de Iridologia (Versão Avançada): | |
""" | |
# Adicionar score geral de saúde | |
formatted_results += f"\nScore Geral de Saúde: {overall_health_score:.1f}/100\n" | |
formatted_results += "-" * 50 + "\n" | |
# Adicionar resultados técnicos | |
formatted_results += "\nANÁLISE TÉCNICA:\n" | |
for result in results: | |
formatted_results += f"\nCaracterística: {result['feature']}\n" | |
formatted_results += f"Análise: {result['analysis']}\n" | |
if result['value'] > 0: | |
formatted_results += f"Índice de complexidade: {result['value']:.2f}\n" | |
formatted_results += "-" * 30 + "\n" | |
# Adicionar insights de saúde | |
if health_insights: | |
formatted_results += "\nCORRELAÇÕES DE SAÚDE OBSERVADAS:\n" | |
for insight in health_insights: | |
formatted_results += f"\nCaracterística: {insight['feature']}\n" | |
formatted_results += f"Nível: {insight['nível']}\n" | |
formatted_results += "Observações:\n" | |
for obs in insight['observações']: | |
formatted_results += f"- {obs}\n" | |
if insight.get('recomendações'): | |
formatted_results += "Recomendações:\n" | |
for rec in insight['recomendações']: | |
formatted_results += f"- {rec}\n" | |
formatted_results += "-" * 30 + "\n" | |
# Adicionar disclaimer final | |
formatted_results += """ | |
LEMBRETE IMPORTANTE: | |
1. Esta análise é baseada em padrões visuais e NÃO é um diagnóstico médico | |
2. Os resultados devem ser interpretados por profissionais qualificados | |
3. Sempre busque avaliação médica profissional para diagnóstico e tratamento | |
4. Esta ferramenta é um complemento e NÃO substitui exames clínicos convencionais | |
""" | |
return formatted_results | |
except Exception as e: | |
return f"Erro durante a análise: {str(e)}" | |
def create_gradio_interface(): | |
analyzer = IridologyAnalyzer() | |
def process_image(image): | |
if image is None: | |
return "Por favor, faça o upload de uma imagem." | |
return analyzer.comprehensive_analysis(image) | |
iface = gr.Interface( | |
fn=process_image, | |
inputs=gr.Image(type="numpy", label="Upload da Imagem do Olho"), | |
outputs=gr.Textbox(label="Resultados da Análise Avançada", lines=30), | |
title="Analisador de Iridologia Avançado com IA", | |
description=""" | |
Sistema avançado de análise de íris usando técnicas de processamento de imagem e correlações de saúde. | |
Faça o upload de uma imagem clara do olho para análise detalhada. | |
IMPORTANTE: Esta ferramenta é apenas para fins educativos e NÃO substitui diagnóstico médico profissional. | |
Recomendações para resultados otimizados: | |
1. Use imagens bem iluminadas e de alta resolução | |
2. Garanta que a íris esteja em foco perfeito | |
3. Evite reflexos e sombras | |
4. Enquadre apenas o olho na imagem, centralizando a íris | |
""", | |
examples=[], | |
cache_examples=True | |
) | |
return iface | |
if __name__ == "__main__": | |
iface = create_gradio_interface() | |
iface.launch() |