nx_vulva_innie_outie.nx
buildroot/runtime/nx_vulva_innie_outie.nx
about
nx_vulva_innie_outie.nx -- labia minora protrusion classifier.
Vulva aesthetic axis: innie vs outie. Measure how far inner-labia
pixels protrude BEYOND the outer-labia centerline. Positive = outie;
negative = innie (minora tucked inside).
Algorithm:
1. Within vulva bbox, find the outer-labia midline (vertical axis).
2. Identify "inner labia" pixels: darker pink than outer skin.
3. For each row in vulva band, measure max horizontal extent of
inner-labia pixels from the midline.
4. Average extent → labia_protrusion_q10 (relative to vulva half-width).
Output flat-array:
result[0] = protrusion_avg_px (avg per-row inner-labia max extent)
result[1] = vulva_half_width_px
result[2] = protrusion_q10 (avg_extent * 1024 / half_width)
result[3] = inner_labia_pixel_count
result[4] = verdict
0=DEEP_INNIE / 1=INNIE / 2=NEUTRAL / 3=OUTIE / 4=PROMINENT_OUTIE
dependencies 2 imports · 1 importers
imports: nx_syscalls.nxnx_image.nx
imported by: nx_lower_anatomy_test.nx
structs
| none |
consts
| 30 | const NX_MAGIC_1024: i64 = 1024 |
| 32 | const NX_INNIE_RES_PROT_PX: i64 = 0 |
| 33 | const NX_INNIE_RES_HALF_W: i64 = 1 |
| 34 | const NX_INNIE_RES_PROT_Q10: i64 = 2 |
| 35 | const NX_INNIE_RES_INNER_COUNT: i64 = 3 |
| 36 | const NX_INNIE_RES_VERDICT: i64 = 4 |
| 37 | const NX_INNIE_RES_FIELDS: i64 = 5 |
| 39 | const NX_INNIE_V_DEEP_INNIE: i64 = 0 |
| 40 | const NX_INNIE_V_INNIE: i64 = 1 |
| 41 | const NX_INNIE_V_NEUTRAL: i64 = 2 |
| 42 | const NX_INNIE_V_OUTIE: i64 = 3 |
| 43 | const NX_INNIE_V_PROMINENT_OUTIE: i64 = 4 |
| 46 | const NX_INNIE_DEEP_INNIE_MAX: i64 = 102 // <= 10% = deep innie |
| 47 | const NX_INNIE_INNIE_MAX: i64 = 256 // 10-25% = innie |
| 48 | const NX_INNIE_NEUTRAL_MAX: i64 = 410 // 25-40% = neutral |
| 49 | const NX_INNIE_OUTIE_MAX: i64 = 614 // 40-60% = outie; > 60% = prominent |
| 53 | const NX_INNIE_R_DELTA_MIN: i64 = 12 |
functions
| 56 | func nx_innie_perimeter_r(rgb: *Image, x0: i64, y0: i64, |
| 102 | func nx_vulva_innie_outie(rgb: *Image, bbox: *i64, result: *i64) -> i64 |