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"))
embedding की शक्ति और PSNR / BER के trade-off को sweep करके लौटाता है। table।
हर strength के लिए यह वास्तव में embed → extract चलाता है, और लौटाता है
psnr_db मूल और watermarked image के बीच PSNR (मान range [0, 1] आधार, MAX=1)
ber extraction की bit error rate (hash_distance से गिनी गई)
clipped watermarked image के pixels का वह अंश जो [0, 1] से बाहर जाता है।
save करते समय overflow हमेशा खो जाता है, इसलिए केवल PSNR देखकर strength बढ़ाने से
"वह गिरावट जिसे आपने मापा नहीं" बढ़ती है
यदि jpeg_quality में कोई quality दी जाए, तो ber_jpeg, जो watermarked image को असली JPEG से गुज़ारने के बाद निकाला जाता है, भी शामिल होता है (Pillow आवश्यक। छोड़ने पर वह column पूरी तरह अनुपस्थित रहता है —— यह default रूप से नहीं चलता, ताकि लौटाए गए columns environment के साथ न बदलें)।
आउटपुट {"capacity_bits": int, "n_bits": int, "rows": [...], "caveats": [...]} है।
• 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.