watermark_embed — IMGFORENSICS watermark op

• 数据种类:image2d × phash → image2d

• 调用: import fullseye as fs; fs.ledger.watermark_embed(image, bits, strength: 'float' = 0.1, wavelet: 'str' = 'haar', level: 'int' = 1) -> 'np.ndarray'(要直接调用实现,import imgforensics; imgforensics.watermark_embed(image, bits, strength: 'float' = 0.1, wavelet: 'str' = 'haar', level: 'int' = 1) -> 'np.ndarray';从台账取用则 opsimgforensics.get("watermark_embed"))

用法

DWT-DCT 数字水印嵌入。返回含水印图像 (H, W)。image2d。

把 1 级 DWT(默认 haar)的 LL 子频带切成 8x8,以各块正交 DCT-II 的 中频带系数对 (3,1) 与 (1,3) 的大小关系表示 1 位(Hsu & Wu 1999 的中频带系数对法)。差小于 strength 时,对称地移动两者直到差达到 strength(只移动一方会使块的能量偏斜)。提取时不需要原图像(盲)。

容量为 (LL 的高 // 8) * (LL 的宽 // 8) 位。bits 比它短时从开头填入,其余块不动。比它长时为 ValueError。

bits 为 bool 的 1-D(phash 词汇)。也接受 0/1 的 int 数组,但不接受 float(不默默决定舍入方向)。

强度与画质的权衡由 watermark_capacity 扫掠后以表返回。实测(256x256 的纹理图像、128 位,LL 为 128x128 = 容量 256 位。tests/test_imgforensics.py::test_watermark_strength_psnr_tradeoff):

========= ========== ====== ================= =================

strength PSNR (dB) BER BER(JPEG 质量 90) BER(JPEG 质量 75)

========= ========== ====== ================= =================

0.02 45.48 0.000 0.008 0.195

0.05 44.48 0.000 0.000 0.008

0.10 42.95 0.000 0.000 0.000

0.20 40.32 0.000 0.000 0.000

0.40 36.37 0.000 0.000 0.000

========= ========== ====== ================= =================

这就是权衡的实际情况。不加处理时即使最弱的 0.02 误差也为 0,但经过 JPEG 质量 75 后有 19.5% 出错。默认的 0.1 是作为“到质量 75 为止误差 0、PSNR 42.95 dB”的点而选定的(clipped 在任何强度下都是 0)。

必须有 PyWavelets(ImportError)。

参考(示例数据、文献)

• 示例数据目录(下载 URL / 许可证) —— 2-D 用 skimage.data(BSD/公有领域)加合成图,3-D 给出真实数据源(Stanford/PDS 等)的下载 URL。

• 算子来历与参考文献 —— 该算子族所依据的研究/方法出处。

• 算法的正典(作者、年份)与用途见上面的族使用指南。

可运行的示例(实际调用该算子并已验证的样例)

• image_forensics_audit — py -3.11 examples/image_forensics_audit.py

类型可衔接的下一个算子(可接受 image2d 作为输入)

perceptual_hash · fingerprint_correlate · error_level_map · jpeg_quality_estimate · jpeg_ghost_map · noise_inconsistency_map · copy_move_regions · watermark_extract

同类别(watermark)

watermark_extract · watermark_capacity


*Provenance: imgforensics.py — IMGFORENSICS 算子登记表。本条目由 tools/opdocs.py md 自动生成(请勿手工编辑)。*

© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.