annotate_invert — ANNOTATE 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 की संख्याओं पर भरोसा न करें।

Parameters

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"।

Returns

(H,W[,C]) float64

inversion लगी हुई copy। input बदला नहीं जाता।

Raises

ValueError

shape मेल नहीं खाता / value range से बाहर / अज्ञात draw mode on_invisible /

on_invisible="raise" पर अदृश्य।

Examples

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

उपयोग की विस्तृत guide

• figure_annotation family guide

पृष्ठभूमि guides (इस op के पीछे की physics और conventions)

• dataset_conventions — Training dataset के conventions — COCO / YOLO / VOC और visual inspection में सावधानियाँ

संदर्भ (sample data, साहित्य)

• 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 में दिए गए हैं।

चलाए जा सकने वाले उदाहरण (verified samples जो सच में यह op call करते हैं)

• annotate_paper_tour — py -3.11 examples/annotate_paper_tour.py

वे अगले ops जिनसे type जुड़ता है (image2d को input के रूप में लेते हैं)

text_box · arrow · leader_line · label_points · crosshair · legend_box · color_bar · scale_bar

इसी category के (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.