blind_watermark — DWT-DCT-SVD Blind Watermarking Library
- URL: https://github.com/guofei9987/blind_watermark
- Date Saved: 2026-06-20
- Source: GitHub
- Tags: security-privacy, dev-tools
Summary
Python library for embedding invisible (blind) watermarks into images using DWT-DCT-SVD transform. By guofei9987.
Key features:
- Embed text strings, images, or bit arrays as watermarks
- Password-protected embedding/extraction
- CLI tool + Python API
- Survives attacks: rotation (45°), random crop, masking, vertical/horizontal cuts, resize, pepper noise, brightness changes
- Multiprocessing support (
processes=parameter) - Cross-platform (Windows/Linux/macOS), Python ≥ 3.5
- MIT License
Stats: 13.6k stars, 1.4k forks, latest release v0.2.1 (Jan 2022)
Usage:
from blind_watermark import WaterMark
# Embed
bwm1 = WaterMark(password_img=1, password_wm=1)
bwm1.read_img('pic/ori_img.jpg')
bwm1.read_wm('@guofei9987 开源万岁!', mode='str')
bwm1.embed('output/embedded.png')
len_wm = len(bwm1.wm_bit)
# Extract
bwm1 = WaterMark(password_img=1, password_wm=1)
wm_extract = bwm1.extract('output/embedded.png', wm_shape=len_wm, mode='str')
CLI:
blind_watermark --embed --pwd 1234 input.jpeg "watermark text" output.png
blind_watermark --extract --pwd 1234 --wm_shape 111 output.png
Related projects:
- text_blind_watermark — embed messages into text
- HideInfo — steganography (image/sound/text)