watermark op• Data kinds: image2d → phash
• Call: import fullseye as fs; fs.ledger.watermark_extract(image, n_bits: 'int', wavelet: 'str' = 'haar', level: 'int' = 1) -> 'np.ndarray' (implementation को सीधे call करना हो तो import imgforensics; imgforensics.watermark_extract(image, n_bits: 'int', wavelet: 'str' = 'haar', level: 'int' = 1) -> 'np.ndarray', registry से लेना हो तो opsimgforensics.get("watermark_extract"))
watermark का blind extraction। bool का 1-D (phash शब्दावली) लौटाता है।
यह उसी DWT / block विभाजन के साथ केवल यह पढ़ता है कि हर mid-band coefficient जोड़ी में कौन बड़ा है। इसे न मूल image चाहिए न कोई key —— यह गोपनीयता का नहीं, integrity का चिह्न है; चूँकि कोई key नहीं है, कोई भी इसे मिटा सकता है और कोई भी इसे लिख सकता है। इसका उपयोग स्वामित्व का दावा करने के लिए नहीं किया जा सकता।
चूँकि आउटपुट phash vocabulary में है, embed की गई bit string से मेल को सीधे hash_distance से गिना जा सकता है (BER = hash_distance(sent, got) / n_bits)। इसी कारण vocabularies को एक जैसा रखा गया है।
PyWavelets आवश्यक (ImportError)।
• Sample data catalog (DL URL / license) — 2-D के लिए skimage.data (BSD/public) + synthetic, 3-D के लिए real data sources (Stanford/PDS आदि) के DL URL।
• Operators का स्रोत और संदर्भ — इस op family के मूल research/methods के स्रोत।
• Algorithm का मानक स्रोत (लेखक, वर्ष) और उपयोग ऊपर की family usage guide में दिए गए हैं।
• image_forensics_audit — py -3.11 examples/image_forensics_audit.py
phash को input के रूप में लेते हैं)hash_distance · watermark_embed · watermark_capacity
watermark)watermark_embed · watermark_capacity
*Provenance: imgforensics.py — IMGFORENSICS operator registry. यह per-op note tools/opdocs.py md से अपने-आप generate होता है (हाथ से edit न करें)।*
© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.