watermark_extract — IMGFORENSICS watermark op

Data kinds: image2dphash

Call: import imgforensics; imgforensics.watermark_extract(image, n_bits: 'int', wavelet: 'str' = 'haar', level: 'int' = 1) -> 'np.ndarray' (or opsimgforensics.get("watermark_extract"))

Usage

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)。

References (sample data, literature)

• 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.

Runnable examples (verified samples that actually call this op)

image_forensics_auditpy -3.11 examples/image_forensics_audit.py

Ops the type connects to (they accept phash as input)

hash_distance · watermark_embed · watermark_capacity

Same category (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.