Actualización del código Error ELA
Browse files
app.py
CHANGED
@@ -52,7 +52,7 @@ def analizar_manipulacion(imagen, ela_imagen):
|
|
52 |
else:
|
53 |
promedio_ela = np.mean(ela_imagen)
|
54 |
if promedio_ela > 10: # Umbral basado en pruebas
|
55 |
-
razones.append("El análisis ELA sugiere posibles alteraciones.")
|
56 |
manipulada = True
|
57 |
else:
|
58 |
razones.append("El análisis ELA no sugiere alteraciones.")
|
@@ -76,8 +76,14 @@ def procesar_imagen(archivo_imagen):
|
|
76 |
Fecha de modificación: {fecha_modificacion}
|
77 |
"""
|
78 |
|
79 |
-
# Obtener metadatos (
|
80 |
metadatos = obtener_metadatos(imagen)
|
|
|
|
|
|
|
|
|
|
|
|
|
81 |
|
82 |
# Realizar ELA
|
83 |
ela_imagen = realizar_ela(imagen)
|
@@ -85,29 +91,25 @@ def procesar_imagen(archivo_imagen):
|
|
85 |
# Analizar manipulación basado en ELA
|
86 |
manipulada, razones = analizar_manipulacion(imagen, ela_imagen)
|
87 |
|
88 |
-
#
|
89 |
-
if metadatos:
|
90 |
-
razones.append("La imagen contiene metadatos EXIF.")
|
91 |
-
else:
|
92 |
-
razones.append("La imagen no tiene metadatos EXIF (esto no implica manipulación).")
|
93 |
-
|
94 |
-
info_manipulacion = "\nAnálisis de manipulación:\n"
|
95 |
if manipulada:
|
96 |
-
|
97 |
-
for razon in razones:
|
98 |
-
info_manipulacion += f"- {razon}\n"
|
99 |
else:
|
100 |
-
|
101 |
-
|
102 |
-
|
|
|
|
|
|
|
|
|
103 |
|
104 |
if ela_imagen is not None:
|
105 |
with tempfile.NamedTemporaryFile(suffix=".png", delete=False) as tmp_file:
|
106 |
cv2.imwrite(tmp_file.name, ela_imagen)
|
107 |
ela_image_path = tmp_file.name
|
108 |
-
return ela_image_path,
|
109 |
else:
|
110 |
-
return None,
|
111 |
|
112 |
except Exception as e:
|
113 |
error_msg = f"Error procesando la imagen: {e}"
|
|
|
52 |
else:
|
53 |
promedio_ela = np.mean(ela_imagen)
|
54 |
if promedio_ela > 10: # Umbral basado en pruebas
|
55 |
+
razones.append("El análisis ELA sugiere posibles alteraciones. Esto podría deberse a ediciones o ajustes automáticos del dispositivo.")
|
56 |
manipulada = True
|
57 |
else:
|
58 |
razones.append("El análisis ELA no sugiere alteraciones.")
|
|
|
76 |
Fecha de modificación: {fecha_modificacion}
|
77 |
"""
|
78 |
|
79 |
+
# Obtener metadatos (mostrar si están disponibles)
|
80 |
metadatos = obtener_metadatos(imagen)
|
81 |
+
if metadatos:
|
82 |
+
metadatos_info = "\nMetadatos EXIF encontrados:\n"
|
83 |
+
for key, value in metadatos.items():
|
84 |
+
metadatos_info += f"- {key}: {value}\n"
|
85 |
+
else:
|
86 |
+
metadatos_info = "\nLa imagen no contiene metadatos EXIF (esto no implica manipulación)."
|
87 |
|
88 |
# Realizar ELA
|
89 |
ela_imagen = realizar_ela(imagen)
|
|
|
91 |
# Analizar manipulación basado en ELA
|
92 |
manipulada, razones = analizar_manipulacion(imagen, ela_imagen)
|
93 |
|
94 |
+
# Construir mensaje principal y detallado
|
|
|
|
|
|
|
|
|
|
|
|
|
95 |
if manipulada:
|
96 |
+
resultado_principal = "**Conclusión:** Se detectaron posibles alteraciones en la imagen.\n"
|
|
|
|
|
97 |
else:
|
98 |
+
resultado_principal = "**Conclusión:** No se detectaron alteraciones evidentes en la imagen.\n"
|
99 |
+
|
100 |
+
razones_detalle = "\nRazones del análisis:\n"
|
101 |
+
for razon in razones:
|
102 |
+
razones_detalle += f"- {razon}\n"
|
103 |
+
|
104 |
+
resultado_final = info_basica + metadatos_info + "\n" + resultado_principal + razones_detalle
|
105 |
|
106 |
if ela_imagen is not None:
|
107 |
with tempfile.NamedTemporaryFile(suffix=".png", delete=False) as tmp_file:
|
108 |
cv2.imwrite(tmp_file.name, ela_imagen)
|
109 |
ela_image_path = tmp_file.name
|
110 |
+
return ela_image_path, resultado_final
|
111 |
else:
|
112 |
+
return None, resultado_final + "\n(No se generó ELA debido a un error técnico.)"
|
113 |
|
114 |
except Exception as e:
|
115 |
error_msg = f"Error procesando la imagen: {e}"
|