A continuación se presenta una técnica de incrustación a ciegas de 8 bits usando códigos de Trellis, para watermarking de imágenes. Para la extracción de los 8 bits se usa el algoritmo de Viterbi.
Incrustación
Este método está basado en el Sistema 5 presentado en [ 1 ]. Se trata de un método basado similar al E-Simple-8, en el sentido de que se se incrustan 8 marcas diferentes para poder ocultar 8 bits. Sin embargo, en este caso se usan códigos de Trellis para codificar los bits, lo que permite una descodificación mucho más fiable.
Es un método robusto, es decir, capaz de resistir algunas alteraciones de la imagen.
El código del método de incrustación está disponible en el siguiente enlace: E_TRELLIS_8.
Para incrustar una marca, basta con ejecutar un comando como el siguiente:
$ python3 E_TRELLIS_8.py image.png passw123 10101010 marked.png
Detección
La detección de la marca y descodificación se realiza calculando la correlación lineal entre la imagen marcada y cada una de las ocho marcas.
La fórmula usada para la correlación lineal es la siguiente:
$Z_{lc} = \frac{1}{N} \bar{c} · \bar{w_r} = \frac{1}{N}\sum_{xy}c(x,y) w_r(x,y)$
Para la descodificación del mensaje se usa el algoritmo de Viterbi.
El código del método de detección está disponible en el siguiente enlace: D_TRELLIS_8.
Para detectar la marca y ver si se ha incrustado un 0 o un 1, basta con ejecutar un comando como el siguiente:
$ python3 D_TRELLIS_8.py marked.png passw123
msg: 10101010
Referencias
- I. J. Cox, M. L. Miller, J. A. Bloom, J. Fridrich y T. Kalker (2008). Digital Watermarking and Steganography. Morgan Kaufmann. Second Edition.
Actualmente no hay comentarios en este artículo.
Añade un comentario