leonett commited on
Commit
cfd100f
·
1 Parent(s): 76c1c87

Actualización del código Error ELA

Browse files
Files changed (1) hide show
  1. app.py +19 -17
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 (solo como referencia secundaria)
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
- # Agregar información sobre los metadatos
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
- info_manipulacion += "La imagen ha sido manipulada.\nRazones:\n"
97
- for razon in razones:
98
- info_manipulacion += f"- {razon}\n"
99
  else:
100
- info_manipulacion += "La imagen NO ha sido manipulada.\nRazones:\n"
101
- for razon in razones:
102
- info_manipulacion += f"- {razon}\n"
 
 
 
 
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, info_basica + info_manipulacion
109
  else:
110
- return None, info_basica + info_manipulacion + "\n(No se generó ELA debido a un error técnico.)"
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}"