region_props — 3D regionprops op

• Data kinds: voxel → table

• Call: import fullseye as fs; fs.ledger.region_props(vol, connectivity: 'int' = 26) -> 'list[dict]' (implementation को सीधे call करना हो तो import regionprops3d; regionprops3d.region_props(vol, connectivity: 'int' = 26) -> 'list[dict]', registry से लेना हो तो ops3d.get("region_props"))

उपयोग

हर connected component की region properties की सूची लौटाता है।

Parameters

vol : array_like

bool या 0/1 का 3D array।

connectivity : int

6 / 18 / 26।

Returns

list[dict]

हर component के लिए एक dict। keys:

• label : label number (int)

• volume : voxels की संख्या (int)

• centroid : centroid (z, y, x) का tuple (float)

• bbox : (z0, y0, x0, z1, y1, x1)। z1/y1/x1 exclusive ऊपरी सिरे हैं (stop)

• extent : volume / bbox volume (fill fraction, 0..1)

• principal_axes : (3,3) principal axis vectors (rows, eigenvalues घटते क्रम में)

• principal_lengths: (3,) principal axis लंबाई = coordinate covariance के eigenvalues का square root (घटते क्रम में)

• equivalent_radius: equivalent sphere radius (3V/4π)^(1/3)

• surface_area : खुले faces की गिनती से approximation (voxel face इकाई में)

• sphericity : समान volume वाले sphere का surface area / वास्तविक surface area (sphere=1 के क़रीब, discretisation के कारण <1)

foreground voxels न हों (या input ख़ाली हो) तो ख़ाली list।

अतिरिक्त:

• सभी मात्राएँ voxel units में हैं (spacing correction नहीं)। वास्तविक माप चाहिए तो volume को voxel volume से, और centroid / bbox / principal_lengths को हर axis की spacing से गुणा करें (anisotropic होने पर principal axis की दिशाएँ विकृत होती हैं)।

• principal_lengths coordinates के population covariance (N से भाग) के eigenvalues का square root है; यह component की radius नहीं बल्कि coordinates का standard deviation है। 1 voxel वाले component में principal_axes identity matrix और principal_lengths सब 0 होते हैं।

• surface_area array के किनारे से लगे faces भी गिनता है (zero padding)। discretisation के कारण sphericity sphere के लिए भी लगभग 0.66 पर सीमित रहती है (module docstring देखें)।

• labels 1..n के क्रम में हैं (label_components जैसा ही scipy scan क्रम), volume के क्रम में नहीं। sorting caller करता है।

• input में 0 के अलावा सबको foreground मानकर bool बनाया जाता है (NaN भी foreground)। Raises ValueError: 3-dimensional न होने वाला input, connectivity 6/18/26 के अलावा।

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

• measurement_uncertainty — Measurement uncertainty और calibration — 'हम माप रहे हैं' कहने के लिए क्या चाहिए

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

• region_props_3d — py -3.11 examples_3d/region_props_3d.py

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

fuse_to_voxel · mesh_select_lod

इसी category के (regionprops)

label_components · largest_component · filter_by_volume · inner_box3 · vol_label · vol_region_props


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

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