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.