Java 盲水印 在图片上加肉眼无法分辨的水印
-
原理
- Encode:
原图 --- 傅立叶变换 ---> 频域图 + 水印 --- 逆变换 ---> 带水印图 - Decode(文字水印):
带水印图 --- 傅立叶变换 ---> 频域图 - Decode(图片水印):
原图 --- 傅立叶变换 --> 原图频域图
带水印图 --- 傅立叶变换 ---> 频域图 - 原图频域图
- Encode:
-
文件
├── gakki-img-dc.png * 反解水印图(图片水印)
├── gakki-text-dc.png * 反解水印图(文字水印)
├── gakki-wm-img.png * 带图片盲水印的图
├── gakki-wm-text.png * 带文字盲水印的图
├── gakki.png * 原图
└── wm.png * 图片水印
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
gradle build
原图:
加文字水印:
java -jar BlindWatermark.jar encode -t gakki.png mywife gakki-wm-text.png
加图片水印:
java -jar BlindWatermark.jar encode -i gakki.png wm.png gakki-wm-img.png
文字水印解码:
java -jar BlindWatermark.jar decode gakki-wm-text.png gakki-text-dc.png
图片水印解码:
java -jar BlindWatermark.jar decode gakki.png gakki-wm-img.png gakki-img-dc.png
- OpenCV Discrete Fourier Transform