Spaces:
Sleeping
Sleeping
File size: 11,878 Bytes
7b945e6 78b9561 7b945e6 78b9561 d8becec 7b945e6 d8becec 7b945e6 bd95651 78b9561 7b945e6 d8becec 7b945e6 bd95651 d8becec 78b9561 bd95651 78b9561 bd95651 78b9561 d8becec 78b9561 bd95651 78b9561 bd95651 78b9561 bd95651 78b9561 d8becec bd95651 78b9561 7b945e6 78b9561 7b945e6 78b9561 bd95651 d8becec 7b945e6 bd95651 d8becec bd95651 d8becec 7b945e6 e1d98e8 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 |
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() |