watermark op• Data kinds: image2d × phash → table
• Call: import fullseye as fs; fs.ledger.watermark_capacity(image, bits, strengths=(0.02, 0.05, 0.1, 0.2, 0.4), wavelet: 'str' = 'haar', level: 'int' = 1, jpeg_quality=None) -> 'dict' (implementation को सीधे call करना हो तो import imgforensics; imgforensics.watermark_capacity(image, bits, strengths=(0.02, 0.05, 0.1, 0.2, 0.4), wavelet: 'str' = 'haar', level: 'int' = 1, jpeg_quality=None) -> 'dict', registry से लेना हो तो opsimgforensics.get("watermark_capacity"))
• GPU: नहीं (केवल CPU reference implementation)
embedding की शक्ति और PSNR / BER के trade-off को sweep करके लौटाता है। table।
वास्तव में प्रत्येक शक्ति के लिए एंबेड → एक्सट्रैक्ट चलाएं,
psnr_db मूल छवि और वॉटरमार्क छवि का PSNR (श्रेणी [0, 1] मानक, MAX=1) ber निष्कर्षण की बिट त्रुटि दर (hash_distance द्वारा गिना गया) क्लिप किया गया'' वॉटरमार्क वाली छवि में पिक्सेल का प्रतिशत जो [0, 1] के बाहर आता है।
बचाते समय ओवरहैंग हमेशा खो जाएगा, इसलिए ताकत केवल पीएसएनआर को देखकर ही निर्धारित की जा सकती है।
यदि आप इसे बढ़ाते हैं, तो "अनियंत्रित गिरावट" बढ़ जाएगी।
गुणवत्ता को jpeg_quality में पास करने से वॉटरमार्क वाली छवि वास्तविक JPEG से होकर गुजर जाएगी और फिर निकाला गया ber_jpeg भी शामिल है (तकिया आवश्यक है। यदि छोड़ा गया है, तो पूरा कॉलम शामिल नहीं किया जाएगा। (यह सुनिश्चित करने के लिए डिफ़ॉल्ट रूप से नहीं चलाया जाता है कि लौटाए गए कॉलम पर्यावरण के आधार पर नहीं बदलते हैं)।
रिटर्न {"capacity_bits": int, "n_bits": int, "rows": [...], "caveats": [...], "ll_shape": tuple}।
• 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
table को input के रूप में लेते हैं)watermark)watermark_embed · watermark_extract
*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.