watermark op• Data kinds: image2d → phash
• Call: import imgforensics; imgforensics.watermark_extract(image, n_bits: 'int', wavelet: 'str' = 'haar', level: 'int' = 1) -> 'np.ndarray' (or opsimgforensics.get("watermark_extract"))
Blind extraction of the watermark. Returns a 1-D bool (the `phash` vocabulary).
> The detailed description below is the original text — the summary and the headings are translated.
同じ DWT / ブロック分割で中帯域係数の対の大小を読むだけ。原画像も鍵も要らない
—— これは 秘匿ではなく完全性の印であり、鍵が無いので **誰でも消せるし
誰でも書ける**。所有権の主張には使えない。
返りが `phash 語彙なので、埋めたビット列との一致は :func:hash_distance` で
そのまま数えられる(BER = `hash_distance(sent, got) / n_bits`)。
語彙を合わせてあるのはそのため。
PyWavelets 必須(:class:ImportError)。
• Sample-data catalog (download URLs / licences) — 2-D uses skimage.data (BSD/public domain) plus synthetic images; 3-D lists download URLs for real data sources (Stanford, PDS, …).
• Operator provenance and references — the sources of the research/methods this op family came from.
• The canonical algorithm (author, year) and its uses are named in the family usage guide above.
• image_forensics_audit — py -3.11 examples/image_forensics_audit.py
phash as input)hash_distance · watermark_embed · watermark_capacity
watermark)watermark_embed · watermark_capacity
*Provenance: imgforensics.py — IMGFORENSICS operator registry. This per-op note is generated by tools/opdocs.py md (do not hand-edit).*
© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.