blob_boundaries — BLOB extract op

• Data kinds: labels2d → mask

• Call: import fullseye as fs; fs.ledger.blob_boundaries(labels: 'Any') -> 'np.ndarray' (implementation को सीधे call करना हो तो import blob2d; blob2d.blob_boundaries(labels: 'Any') -> 'np.ndarray', registry से लेना हो तो opsblob.get("blob_boundaries"))

उपयोग

object की outline (1 pixel चौड़ी, bool)। पास-पास के object के बीच की सीमा भी रहती है।

यह भीतरी किनारा लेता है (अपने से अलग label के बगल वाले foreground pixels), इसलिए contour हमेशा object के अंदर रहता है -- बाहरी किनारा लेने का मतलब होगा पड़ोसी object के pixels को contour कहना।

प्रक्रिया: label image पर 3x3 (8-neighbourhood) grey erosion lo और dilation hi लगाएँ, फिर (labels > 0) & ((lo != labels) | (hi != labels))। "जिन foreground pixels के neighbourhood में अलग नंबर (background 0 सहित) हो" = भीतरी 1 pixel चौड़ा किनारा। सिर्फ़ erosion से छोटे नंबर वाले object की तरफ़ की सीमा ग़ायब हो जाती है, इसलिए dilation भी देखकर इसे symmetric बनाया गया है।

• labels: 2-D integer label image (blob_label का output)। bool / float / negative नंबर पर ValueError (blob_region जैसा ही contract)।

• return value: (H, W) का bool। सभी objects के किनारे 1 ही sheet पर एक-दूसरे पर आते हैं (अगर हर object अलग चाहिए तो पहले blob_region से निकालें, फिर लगाएँ)।

• image के किनारे को छूने वाले objects के लिए scipy का default (reflective boundary) image के किनारे के बाहर को उसी object की value मानता है, इसलिए image के किनारे के साथ चलने वाली भुजाएँ किनारे के रूप में नहीं आतीं।

• 1 pixel चौड़े पतले object के सभी pixels किनारा बन जाते हैं।

blob_features की परिधि एक अलग coefficient method से मापी जाती है, और यह इस किनारे के pixel count से मेल नहीं खाती। contour को polyline की तरह इस्तेमाल करना हो तो annotate_outline_layout (x, y) का closed polygon लौटाता है।

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

• blob_analysis family guide

संदर्भ (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 करते हैं)

• poc_gear_tooth_metrology — py -3.11 examples/poc_gear_tooth_metrology.py

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

blob_label · blob_distance

इसी category के (extract)

blob_region · blob_overlay


*Provenance: blob2d.py — BLOB operator registry. यह per-op note tools/opdocs.py md से अपने-आप generate होता है (हाथ से edit न करें)।*

© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.