rle_region op• Data kinds: voxel → rle_region
• Call: import fullseye as fs; fs.ledger.vol_rle_encode(vol_binary) -> 'VolRLE' (implementation को सीधे call करना हो तो import volregion; volregion.vol_rle_encode(vol_binary) -> 'VolRLE', registry से लेना हो तो ops3d.get("vol_rle_encode"))
binary volume को x-runs के रूप में encode करता है (3-D HALCON-region representation)।
जो input {0, 1} न हो, उस पर > 0.5 पर threshold लगता है (volops का नियम)। NaN / Inf reject होते हैं। खाली mask शून्य runs में encode होता है — यह valid region है जो decode होकर पूरा background बनता है।
Memory: runs की संख्या के अनुपात में (लगभग हर plane row की surface complexity), voxel की संख्या के अनुपात में नहीं — असली जैसे 384**3 part पर dense bool mask का 1/145 मापा गया।
क्या बनता है: (D, H, W) के binary volume को x axis (आख़िरी axis) की दिशा में लगातार foreground अंतरालों (runs) की सूची में बदलता है। VolRLE एक frozen dataclass है जिसमें rows (plane row id z*H + y, int32, बढ़ते क्रम में), starts / ends (run का x range [start, end), end exclusive), और shape (मूल (D, H, W)) होते हैं। Run i vol[z, y, starts[i]:ends[i]] को दिखाता है।
Arguments और जाँच (fail-closed):
• vol_binary: 3-D array। bool हो तो वैसे ही, बाकी को float64 में बदलकर, NaN/Inf हो तो ValueError, फिर > 0.5 से binarise किया जाता है।
• 3-D न हो, या voxel की संख्या MAX_VOXELS (1 << 27 ≈ 1.34 × 10^8) से ज़्यादा हो, तो ValueError।
• खाली mask 0 runs वाला VolRLE बनता है (error नहीं)।
सावधानी: axis क्रम [z, y, x] (depth, row, col) है। Runs केवल x दिशा में चलते हैं, इसलिए जो आकार x दिशा में बारीकी से टूटते हैं (धारियाँ, noise), उनमें runs ज़्यादा और compression का फ़ायदा कम होता है। vol_rle_volume / vol_rle_bbox / vol_rle_centroid decode किए बिना runs पर ही जवाब देते हैं। Set operations vol_rle_union / vol_rle_intersect / vol_rle_difference हैं, dense array में वापस लाने के लिए vol_rle_decode।
• 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 के स्रोत।
• rle_region_efficiency — py -3.11 examples_3d/rle_region_efficiency.py
rle_region को input के रूप में लेते हैं)vol_rle_decode · vol_rle_volume · vol_rle_bbox · vol_rle_centroid · vol_rle_union · vol_rle_intersect · vol_rle_difference · fuse_to_voxel
rle_region)vol_rle_decode · vol_rle_volume · vol_rle_bbox · vol_rle_centroid · vol_rle_union · vol_rle_intersect · vol_rle_difference · vol_rle_components
*Provenance: volregion.py — 3D operator registry. यह per-op note tools/opdocs.py md से अपने-आप generate होता है (हाथ से edit न करें)।*
© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.