Un entusiasta ha creado Depix, una herramienta de código abierto que permite recuperar el texto “pixelado” en imágenes.

El algoritmo selecciona alfabéticamente bloques de píxeles similares y recrea la imagen original a partir de ellos. Por lo tanto, es mejor eliminar los datos personales en capturas de pantalla u ocultarlos debajo de algunos bloques negros.

A veces es necesario enviar una captura de pantalla que contenga datos personales: contraseñas o detalles de tarjetas bancarias. Para ocultar información innecesaria, las empresas y los usuarios difuminan o pixelan la información, en lugar de pintar por encima.

Ahora resulta que no es seguro. El especialista en seguridad de la información Sipke Mellema ha desarrollado una herramienta basada en Python para restaurar texto pixelado en una imagen. Publicó su programa en Github.

Que hace Depix

Normalmente, la imagen se pixela mediante un filtro de bloque. Divide la imagen en rectángulos y promedia el color del píxel.

Un ejemplo de cómo funciona la pixelización
El filtro divide la imagen en regiones y sobrescribe los datos de píxeles en cada

Dos símbolos adyacentes estarán igualmente pixelados en diferentes imágenes, lo que significa que se pueden descifrar. Para restaurar un número de tarjeta bancaria, debe generar todos los números de tarjeta bancaria posibles, pixelarlos y luego comparar el resultado con la tarjeta deseada.

En la entrada, Depix recibe una imagen pixelada (la que necesita ser decodificada) y un alfabeto escrito en una fuente similar. Luego, el algoritmo pixela el alfabeto y busca bloques de píxeles coincidentes.

Depix usa la secuencia de Bruijn como su alfabeto: cualquier combinación de caracteres es única en ella.

Imagen que contiene caracteres y simbolos de la ecuencia Bruijn
Así es la secuencia de Bruijn 

Primero, el algoritmo encuentra un bloque coincidente y luego empareja bloques adyacentes similares que están a la misma distancia que en la imagen original.

Cada bloque que coincide se marca como “correcto”. La selección continúa hasta que los bloques “correctos” tengan nuevas coincidencias geométricas. Luego se muestra el resultado.

Para bloques con múltiples coincidencias el algoritmo imprimirá los promedios.

Uno de los posibles resultados de Depix
Resultado promedio

Cómo usar Depix

  • Instalar Python .
  • Descargar Depix (Code→ Download .zip).
  • Recortamos una parte rectangular pixelada de la imagen.
  • Generamos una secuencia de Bruijn con los caracteres sugeridos y creamos un archivo con la misma configuración de fuente que en el fragmento pixelado (tamaño, color, fuente, modelo de color HSL).
  • Tomamos una captura de pantalla de la secuencia de Bruijn, si es posible, con la misma herramienta que se creó el texto pixelado.
  • Ejecutamos python depix.py en Python -p [nombre del fragmento de imagen pixelada] -s [alfabeto de muestra] -o output.png
  • El resultado final estará en la imagen de salida.png

Para que sea más fácil comprender cómo funciona el algoritmo, el autor da un ejemplo de cadena ya hecho. Puede ejecutarlo justo después de descargar Depix y verlo en acción.

python depix.py -p images/testimages/testimage3_pixels.png -s images/searchimages/debruinseq_notepad_Windows10_closeAndSpaced.png -o output.png

Cómo proteger imágenes

Se recomienda eliminar por completo la información confidencial de las imágenes y no utilizar editores gráficos para difuminar o pixelar.

Los algoritmos de recuperación, al menos parcialmente, pueden reconocer texto y, en el futuro, los métodos solo se mejorarán.