vol_rle_decode — 3D rle_region op

• Data kinds: rle_region → voxel

• Call: import fullseye as fs; fs.ledger.vol_rle_decode(region) -> 'np.ndarray' (implementation को सीधे call करना हो तो import volregion; volregion.vol_rle_decode(region) -> 'np.ndarray', registry से लेना हो तो ops3d.get("vol_rle_decode"))

उपयोग

VolRLE को वापस dense (D, H, W) float64 {0, 1} volume में decode करता है।

vol_rle_encode का सटीक inverse (bit-identical round trip)। Region की जाँच पहले होती है, इसलिए corrupted RLE सीमा से बाहर लिखने के बजाय ValueError देता है।

प्रक्रिया: (D*H, W+1) के int8 cumulative buffer में हर run के start पर +1 और end पर -1 जोड़ा जाता है (np.add.at), और x दिशा का cumulative sum जहाँ > 0 हो, वह स्थान foreground बनता है। Overlapping runs दिए जाएँ तब भी जोड़ में वे एक-दूसरे को काटते नहीं (count > 0 हो तो foreground)।

Return value: (D, H, W) का float64, values केवल 0.0 / 1.0। shape region.shape से लिया जाता है, इसलिए मूल volume की ज़रूरत नहीं।

जाँच (ValueError): VolRLE न हो / shape की लंबाई 3 न हो, खाली हो, या MAX_VOXELS से ज़्यादा हो / rows, starts, ends की लंबाई मेल न खाए / integer dtype न हो / row id 0..D*H-1 के बाहर हो / start < 0, end > W, end <= start वाला run। हाथ से बनाए गए या बाहर से पढ़े गए RLE की भी allocation से पहले पूरी जाँच होती है।

कहाँ उपयोग करें: जो processing runs पर नहीं हो सकती (filter, morphology, vol_label आदि), उसके ठीक पहले ही decode करें, और परिणाम को vol_rle_encode से वापस बदलें।

संदर्भ (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 के स्रोत।

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

• rle_region_efficiency — py -3.11 examples_3d/rle_region_efficiency.py

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

voxel_to_mips · voxel_to_mesh · signed_distance_field · to_points · sobel3d · hessian3d · curvature_maps · edt_jfa

इसी category के (rle_region)

vol_rle_encode · 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.