guofei9987/blind_watermark
blind-watermark
Blind watermark based on DWT-DCT-SVD.
- Documentation: https://BlindWatermark.github.io/blind_watermark/#/en/
- 文档: https://BlindWatermark.github.io/blind_watermark/#/zh/
- 中文 readme README_cn.md
- Source code: https://github.com/guofei9987/blind_watermark
install
|
|
For the current developer version:
|
|
How to use
Use in bash
|
|
Use in Python
Original Image + Watermark = Watermarked Image
+ ‘@guofei9987 开源万岁!’ = 
See the codes
Embed watermark:
|
|
Extract watermark:
|
|
Output:
@guofei9987 开源万岁!
attacks on Watermarked Image
| attack method | image after attack | extracted watermark |
|---|---|---|
| Rotate 45 Degrees | ![]() |
‘@guofei9987 开源万岁!’ |
| Random crop | ![]() |
‘@guofei9987 开源万岁!’ |
| Masks | ![]() |
‘@guofei9987 开源万岁!’ |
| Vertical cut | ![]() |
‘@guofei9987 开源万岁!’ |
| Horizontal cut | ![]() |
‘@guofei9987 开源万岁!’ |
| Resize | ![]() |
‘@guofei9987 开源万岁!’ |
| Pepper Noise | ![]() |
‘@guofei9987 开源万岁!’ |
| Brightness 10% Down | ![]() |
‘@guofei9987 开源万岁!’ |
embed images
embed watermark:
|
|
Extract watermark:
|
|
| attack method | image after attack | extracted watermark |
|---|---|---|
| Rotate 45 Degrees | ![]() |
![]() |
| Random crop | ![]() |
![]() |
| Mask | ![]() |
![]() |
embed array of bits
See it here
As demo, we embed 6 bytes data:
|
|
Embed:
|
|
Extract:
|
|
Notice that wm_shape (shape of watermark) is necessary
The output wm_extract is an array of float. set a threshold such as 0.5.
Concurrency
|
|
processesnumber of processes, can be integer. DefaultNone, which means using all processes.
Related Project
- text_blind_watermark (Embed message into text): https://github.com/guofei9987/text_blind_watermark
- HideInfo(hide as image, hide as sounds, hide as text):https://github.com/guofei9987/HideInfo









