nx_anatomy_measure.nx
buildroot/runtime/nx_anatomy_measure.nx
about
nx_anatomy_measure.nx -- measure named anatomical axes from binary mask.
Composes existing primitives (no duplication):
- nx_color_skin_mask (already in nx_color_v2)
- nx_region_segment (already in nx_region)
- nx_eye_detect (Layer 7, KEYSTONE)
Cross-section measurement is the central technique here:
- bust = widest mask-width across upper torso Y-band
- waist = narrowest mask-width across mid torso Y-band
- hip = widest mask-width across lower torso Y-band
- navel = darkest pixel along torso vertical midline
Output: flat-array (axis_id, value_px) bundle ready for
nx_beauty_score(). All primitives are flat-array-API to avoid the
nxc2 codegen bug with struct-pointer returns.
dependencies 4 imports · 2 importers
imports: nx_syscalls.nxnx_image.nxnx_canon_proportions.nxnx_beauty_score.nx
imported by: nx_anatomy_measure_test.nxnx_curviness_gate.nx
structs
| none |
consts
| 28 | const K_MAGIC_9999: i64 = 9999 |
| 254 | const AM_CURV_UNMEASURED: i64 = 0 - 1 |
| 259 | const AM_CURV_SEGS: i64 = 16 |
| 260 | const AM_CURV_MINROWS: i64 = 32 |
| 261 | const AM_CURV_UNIT: i64 = 1000000 |
| 262 | const AM_CURV_PERMIL: i64 = 1000 |
| 263 | const AM_CURV_O_TOTAL: i64 = 0 |
| 264 | const AM_CURV_O_ROWS: i64 = 1 |
| 265 | const AM_CURV_O_SEGS: i64 = 2 |
| 266 | const AM_CURV_O_FIELDS: i64 = 3 |
| 267 | const AM_CURV_SLACK: i64 = 16 |
functions
| 32 | func nx_mask_longest_run_at_y(mask: *Image, y: i64, x0: i64, x1: i64) -> i64 |
| 53 | func nx_mask_widest_y(mask: *Image, y0: i64, y1: i64, |
| 69 | func nx_mask_narrowest_y(mask: *Image, y0: i64, y1: i64, |
| 97 | func nx_anatomy_measure_body(mask: *Image, eye_width_px: i64, |
| 269 | func am_outline_curvature(mask: *Image, y0: i64, y1: i64, |