overlay op• Data kinds: image2d × mask → image2d
• Call: import fullseye as fs; fs.ledger.annotate_invert(img, mask, draw='fill', width=1.5, mode='complement', alpha=1.0, bits=128, min_contrast=1.5, on_invisible='warn') (implementation को सीधे call करना हो तो import annotate; annotate.annotate_invert(img, mask, draw='fill', width=1.5, mode='complement', alpha=1.0, bits=128, min_contrast=1.5, on_invisible='warn'), registry से लेना हो तो opsannotate.get("annotate_invert"))
region को inverted रंग से भरता है / उसकी outline बनाता है।
यह उस स्थिति की पुरानी तरकीब है जब "पता नहीं पृष्ठभूमि हल्की है या गहरी, इसलिए ऐसे रंग से बनाना है जो दोनों पर दिखे"। fill colour तय करने से छुटकारा मिलता है, लेकिन बदले में यह mid-tones में गायब हो जाता है, इसलिए annotate_invert_visibility का माप अंदर हमेशा चलाया जाता है।
★यदि पृष्ठभूमि monochrome (grey) है, तो पहले saturation वाले रंग पर विचार करें। grey में saturation नहीं होता, इसलिए saturation वाला रंग हर level से hue के द्वारा अलग पहचाना जाता है -- inverted colour से अधिक भरोसेमंद, और एक नज़र में पता चलता है कि "यह ऊपर रखी गई line है" (annotate_outline / overlay_mask को role colour दें)। inverted colour तब असली काम आता है जब पृष्ठभूमि रंगीन हो और कोई भी रंग चुनें, टकराव हो सकता हो। ध्यान दें कि annotate_invert_visibility WCAG का luminance ratio मापता है, इसलिए "luminance समान लेकिन hue अलग" जैसी दिखावट का मूल्यांकन नहीं कर सकता -- रंग से बनाना हो तो इस op की संख्याओं पर भरोसा न करें।
mask : (H,W)
region। boolean या [0,1] के weights। image से shape अलग हो तो exception।
draw : {"fill", "margin"}
HALCON के set_draw वाला ही शब्द। "fill" अंदर के हिस्से सहित, "margin"
केवल contour को invert करता है। contour width pixel मोटी (integer पर round की गई)
band है, जो region के अंदर और बाहर आधी-आधी फैलती है।
width : float
draw="margin" होने पर band की मोटाई (pixels)।
mode : str
INVERT_MODES। "complement" पृष्ठभूमि का pattern रखता है, "xor"
pattern रखते हुए गायब न होने की guarantee देता है, और "contrast" black-white पर जाकर
दिखने की guarantee देता है।
bits : int
mode="xor" का bit mask (1..255)। default 0x80 केवल सबसे ऊँचे bit को
invert करता है -- हमेशा 128 levels कूदता है, इसलिए गायब नहीं होता। 0xFF करने पर
complement जैसा ही (cliff सहित वही), और 0x0F जैसा केवल निचले bits वाला
mask किसी भी level पर नहीं दिखता (measured: सभी 256 levels पर ratio 1.5 से कम)।
alpha : float
inversion की तीव्रता। 1.0 पर पूरा invert, 0.5 पर पृष्ठभूमि और inverted colour के बीच
(mode="complement" में 0.5 हमेशा mid-tone बनता है -- inverted colour को
आधा करने पर गायब होना स्वाभाविक है, warning इसे पकड़ती है)।
min_contrast, on_invisible :
न दिखने का पता चलने पर व्यवहार। "warn" (default) / "raise" (fail-closed)
/ "ignore"।
(H,W[,C]) float64
inversion लगी हुई copy। input बदला नहीं जाता।
ValueError
shape मेल नहीं खाता / value range से बाहर / अज्ञात draw mode on_invisible /
on_invisible="raise" पर अदृश्य।
>>> import numpy as np, annotate
>>> img = np.zeros((16, 16)); img[4:12, 4:12] = 1.0
>>> m = np.zeros((16, 16), bool); m[6:10, 6:10] = True
>>> out = annotate.annotate_invert(img, m)
>>> float(out[7, 7]), float(out[1, 1])
(0.0, 0.0)
>>> ring = annotate.annotate_invert(img, m, draw="margin", width=1)
>>> float(ring[7, 7]) # अंदर का हिस्सा नहीं छुआ जाता
1.0
• figure_annotation family guide
• dataset_conventions — Training dataset के conventions — COCO / YOLO / VOC और visual inspection में सावधानियाँ
• 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 में दिए गए हैं।
• annotate_paper_tour — py -3.11 examples/annotate_paper_tour.py
image2d को input के रूप में लेते हैं)text_box · arrow · leader_line · label_points · crosshair · legend_box · color_bar · scale_bar
overlay)overlay_mask · overlay_labels · annotate_invert_visibility · annotate_invert_path
*Provenance: annotate.py — ANNOTATE operator registry. यह per-op note tools/opdocs.py md से अपने-आप generate होता है (हाथ से edit न करें)।*
© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.