Skip to content

ww23/BlindWatermark

Repository files navigation

BlindWatermark

Travis (.org)

Java 盲水印 在图片上加肉眼无法分辨的水印

  • 原理

    • Encode:
      原图 --- 傅立叶变换 ---> 频域图 + 水印 --- 逆变换 ---> 带水印图
    • Decode(文字水印):
      带水印图 --- 傅立叶变换 ---> 频域图
    • Decode(图片水印):
      原图 --- 傅立叶变换 --> 原图频域图
      带水印图 --- 傅立叶变换 ---> 频域图 - 原图频域图
  • 文件
    ├── gakki-img-dc.png * 反解水印图(图片水印)
    ├── gakki-text-dc.png * 反解水印图(文字水印)
    ├── gakki-wm-img.png * 带图片盲水印的图
    ├── gakki-wm-text.png * 带文字盲水印的图
    ├── gakki.png * 原图
    └── wm.png * 图片水印

Usage:

Usage: java -jar BlindWatermark.jar <commands> [args...]
    commands:
            encode <option> <image-src>  <watermark-text>       <image-encoded(text)>
            encode <option> <image-src>  <watermark-image>      <image-encoded(image)>
            decode <image-encode(text)>  <image-decode>
            decode <image-src>           <image-encoded(image)> <image-decode>
    options:
            -i add image watermark
            -t add text  watermark

Build:

gradle build

Demo:

原图:

image

加文字水印:
java -jar BlindWatermark.jar encode -t gakki.png mywife gakki-wm-text.png

image

加图片水印:
java -jar BlindWatermark.jar encode -i gakki.png wm.png gakki-wm-img.png

image image

文字水印解码:
java -jar BlindWatermark.jar decode gakki-wm-text.png gakki-text-dc.png

image

图片水印解码:
java -jar BlindWatermark.jar decode gakki.png gakki-wm-img.png gakki-img-dc.png

image

Reference:

  • OpenCV Discrete Fourier Transform