leonett commited on
Commit
45f6148
verified
1 Parent(s): a257fec

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +9 -20
app.py CHANGED
@@ -102,39 +102,28 @@ def realizar_ela(imagen):
102
  img_np = np.array(imagen.convert("RGB"))
103
  img_cv = cv2.cvtColor(img_np, cv2.COLOR_RGB2BGR)
104
 
105
- quality = 95
106
- noise_level = 3
107
- error_scale = 57
108
- brightness_pct = 100
109
- equalize_histogram = False
110
-
111
  temp_path = "/tmp/temp_image.jpg"
112
  cv2.imwrite(temp_path, img_cv, [cv2.IMWRITE_JPEG_QUALITY, quality])
113
  img_comprimida = cv2.imread(temp_path)
114
  if img_comprimida is None:
115
  raise ValueError("No se pudo leer la imagen comprimida.")
116
 
 
117
  diferencia = cv2.absdiff(img_cv.astype(np.float32), img_comprimida.astype(np.float32))
118
- scaled_diff = diferencia * (noise_level / 10.0) * (error_scale / 100.0) * 20.0
119
- scaled_diff = np.clip(scaled_diff, 0, 255).astype(np.uint8)
120
 
 
121
  gray_diff = cv2.cvtColor(scaled_diff, cv2.COLOR_BGR2GRAY)
122
- _, mask = cv2.threshold(gray_diff, 20, 255, cv2.THRESH_BINARY)
123
- mask = mask.astype(np.uint8)
124
-
125
- if equalize_histogram:
126
- gray = cv2.cvtColor(scaled_diff, cv2.COLOR_BGR2GRAY)
127
- gray_eq = cv2.equalizeHist(gray)
128
- scaled_diff = cv2.cvtColor(gray_eq, cv2.COLOR_GRAY2BGR)
129
 
130
- brightness_factor = min(1.1, brightness_pct / 100.0)
131
- scaled_diff = cv2.convertScaleAbs(scaled_diff, alpha=brightness_factor, beta=0)
132
 
133
- ela_color = scaled_diff.copy()
134
  img_gray = cv2.cvtColor(img_cv, cv2.COLOR_BGR2GRAY)
135
  img_gray = cv2.cvtColor(img_gray, cv2.COLOR_GRAY2BGR)
136
- img_gray = cv2.convertScaleAbs(img_gray, alpha=0.5, beta=0)
137
-
138
  result = np.where(mask[..., None] > 0, ela_color, img_gray)
139
 
140
  os.remove(temp_path)
 
102
  img_np = np.array(imagen.convert("RGB"))
103
  img_cv = cv2.cvtColor(img_np, cv2.COLOR_RGB2BGR)
104
 
105
+ # Fuerza la compresi贸n para detectar artefactos
106
+ quality = 75
 
 
 
 
107
  temp_path = "/tmp/temp_image.jpg"
108
  cv2.imwrite(temp_path, img_cv, [cv2.IMWRITE_JPEG_QUALITY, quality])
109
  img_comprimida = cv2.imread(temp_path)
110
  if img_comprimida is None:
111
  raise ValueError("No se pudo leer la imagen comprimida.")
112
 
113
+ # Calcula diferencias
114
  diferencia = cv2.absdiff(img_cv.astype(np.float32), img_comprimida.astype(np.float32))
115
+ scaled_diff = np.clip(diferencia * 15, 0, 255).astype(np.uint8) # Escalado fuerte
 
116
 
117
+ # Convertir a escala de grises y aplicar umbral m谩s bajo
118
  gray_diff = cv2.cvtColor(scaled_diff, cv2.COLOR_BGR2GRAY)
119
+ _, mask = cv2.threshold(gray_diff, 5, 255, cv2.THRESH_BINARY)
 
 
 
 
 
 
120
 
121
+ # Resalta con color donde hay diferencias
122
+ ela_color = cv2.applyColorMap(gray_diff, cv2.COLORMAP_TURBO)
123
 
124
+ # Combinar con la original en escala de grises
125
  img_gray = cv2.cvtColor(img_cv, cv2.COLOR_BGR2GRAY)
126
  img_gray = cv2.cvtColor(img_gray, cv2.COLOR_GRAY2BGR)
 
 
127
  result = np.where(mask[..., None] > 0, ela_color, img_gray)
128
 
129
  os.remove(temp_path)