watermark op• 資料種類:image2d × phash → image2d
• 呼叫: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` がそれより短ければ
先頭から埋め、残りのブロックは触らない。長ければ :class:ValueError。
`bits は bool の 1-D(phash` 語彙)。0/1 の int 配列も受けるが、
float は受けない(丸めの向きを黙って決めない)。
強度と画質のトレードオフは :func: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 必須(:class: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.