measure op• Data kinds: labels → table
• Call: import fullseye as fs; fs.ledger.vol_label_shape_stats(labels, spacing=None, shape: 'bool' = True) (implementation को सीधे call करना हो तो import volcolor; volcolor.vol_label_shape_stats(labels, spacing=None, shape: 'bool' = True), registry से लेना हो तो opsvolcolor.get("vol_label_shape_stats"))
• GPU: नहीं (केवल CPU reference implementation)
हर component की वे मात्राएँ जो linear time में निकाली जा सकती हैं (volume, centroid, box, principal component shape index)।
volops.vol_region_props की बहन, लेकिन अलग उद्देश्य के साथ:
• यह सतह_क्षेत्र और वेडेल गोलाकारता देता है। उस उद्देश्य के लिए चूंकि मार्चिंग क्यूब्स प्रत्येक घटक के लिए चलाए जाते हैं, पायथन लूप घटकों की संख्या के समानुपाती होता है। टर्न (1 वोक्सल 1 लेबल के पैथोलॉजिकल इनपुट के साथ जल्दी से भारी हो जाता है)।
• यह उस राशि तक सीमित है जिसके लिए केवल np.bincount के भारित योग की आवश्यकता होती है। 1 लेबल सरणी 10 बिनकाउंट(टुकड़ों की संख्या 1, निर्देशांक योग 3, सहप्रसरण 6) = O(N + n)। वास्तविक माप (कनेक्टिविटी=26, 1 स्वर 1 लेबल = पैथोलॉजिकल इनपुट का चेकरबोर्ड पैटर्न):
163 = 4096 स्वर/512 घटक = 0.0037 एस, 323 = 32768/4096 =
0.0350 सेकेंड, 643 = 262144/32768 = 0.2556 सेकेंड, 1283 = 2097152/262144 =
2.3122 एस. प्रत्येक 8 स्वरों के लिए 9.5 / 7.3 / 9.0 बार (द्विघात के लिए 64 बार),
पूरे क्षेत्र में लगभग 1.1 माइक्रोसेकंड/स्वर। वही 1283 रंग 0.0357 s है।
(संदर्भ के लिए: volops.vol_region_props(surface='faces'''' वही 163 है
0.0121 सेकेंड - प्रत्येक घटक के लिए पायथन लूप के कारण 3.5 गुना लंबा। मार्चिंग क्यूब्स
सतह='ऑटो' का उपयोग करने का डिफ़ॉल्ट और भी भारी है। )
लेबल voxel_count वॉल्यूम सेंट्रोइड bbox volops.vol_region_props समान परिभाषा और समान मान (tests/test_volcolor.py::test_stats_agree_with_vol_region_props_exactly है (सटीक मिलान के साथ तय)। bbox (z0, z1, y0, y1, x0, X1) है और ऊपरी सीमा अनन्य है।
हम भी क्या लौटाते हैं:
centroid_mm (z, y, x) भौतिक निर्देशांक (बिना रिक्ति के स्वर के समान)
विस्तार बॉक्स के भौतिक आयाम (dz, dy, dx) · समतुल्य_व्यास
(6V/pi)(1/3) · touches_border क्या bbox वॉल्यूम किनारे को छूता है? ·
principal_extent सहप्रसरण eigenvalue का वर्गमूल (s1 >= s2 >= s3)(भौतिक इकाई) ·
रैखिकता (l1-l2)/l1 · तलीयता (l2-l3)/l1 · आइसोट्रॉपी
l3/l1 · बढ़ाव sqrt(l1/l2)।
बढ़ाव अनंत हो सकता है (अनुबंध): l1 > 0 और l2 == 0, दूसरे शब्दों में, 1 स्वर की मोटाई वाला एक बिल्कुल सीधी रेखा वाला घटक inf लौटाता है। दुर्घटना को 0 से विभाजित किया गया बल्कि सच तो यह है कि दूसरी धुरी की दिशा में कोई फैलाव नहीं होता और गोल होने पर पतलापन का क्रम बदल जाता है। वे चुपचाप स्थान बदल लेते हैं। एक एकल स्वर (l1 == 0) एक आइसोट्रोपिक बिंदु है, इसलिए यह 1.0 है।
यदि आप रिक्ति देना भूल जाते हैं, तो संख्याएँ और निष्कर्ष बदल जाएंगे। वास्तविक माप - 6 मिमी त्रिज्या वाला एक गोला स्पेसिंग = (3.0, 1.0, 1.0) जब मिमी के अनिसोट्रोपिक ग्रिड (जेड में 3 गुना मोटे) के साथ नमूना लिया जाता है, यह 293 स्वर हो जाता है। बंद-फ़ॉर्म का वास्तविक मान 4/3 pi 63 = 904.78 मिमी3 है:
• स्पेसिंग = 879.0 मिमी3 (त्रुटि -2.85 %) के साथ, आइसोट्रॉपी = 0.7349 (लगभग आइसोट्रोपिक = सही)।
• नहीं स्पेसिंग = 293.0 (स्वर इकाइयों में। त्रुटि -67.62% जब मिमी3 के रूप में पढ़ा जाता है), आइसोट्रॉपी = 0.0817 -- गोला एक "बोर्ड" जैसा दिखता है। अनिसोट्रॉपी को नजरअंदाज करना आकार सूचकांक टूटा हुआ है, फिर भी एक सीमित और उचित मूल्य देता है।
*समतुल्य व्यास भी 1.44, 11.8849 मिमी बनाम 8.2406 के कारक से भिन्न होता है।
संख्यात्मक नोट: दूसरे क्षण की गणना E[x2] - E[x]2 के रूप में की जाती है, इसलिए निर्देशांक बड़े और छोटे फैलाव वाले घटकों के लिए, परिशुद्धता का नुकसान हो सकता है। ऊपरी सीमा :डेटा:MAX_COLOR_VOXELS (एक तरफ ~2000 तक), E[x2] ~ 4e6 के लिए फ्लोट64 की सापेक्ष परिशुद्धता 1e-16 = है निरपेक्ष 1e-10, स्वर-वार भिन्नता के लिए परिमाण मार्जिन के 10 आदेशों के साथ। उससे भी बड़ा वॉल्यूम को ROI में कटौती के बाद पास किया जाना चाहिए (यह ऊपरी सीमा का कारण भी है)।
*आकार* को गलत पर सेट करने से सहप्रसरण (10 में से 6 की बिनकाउंट) छूट जाएगी, principal_extent निम्नलिखित 5 आइटम वापस न करें - केवल वॉल्यूमेट्रिक फ़िल्टर की आवश्यकता है कभी-कभी एक O(N) अस्थायी सरणी को घटाकर एक कर दिया जा सकता है।
आरोही लेबल क्रम में सूची[dict] लौटाता है (केवल वास्तविक लेबल) --- labels.max() संख्या में अंतराल होने पर भी खाली निर्देश नहीं लौटाता)।
• 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 में दिए गए हैं।
• poc_cold_chain_excursion — py -3.11 examples/poc_cold_chain_excursion.py
• voxel_labels_color — py -3.11 examples/voxel_labels_color.py
table को input के रूप में लेते हैं)—
measure)*Provenance: volcolor.py — VOLCOLOR operator registry. यह per-op note tools/opdocs.py md से अपने-आप generate होता है (हाथ से edit न करें)।*
© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.