nx_salience.nx
buildroot/runtime/nx_salience.nx
about
nx_salience.nx -- Itti-Koch multi-scale salience (V8).
Salience = "where does the eye go first" before any semantic
understanding. Itti+Koch 1998 model: compute feature pyramids
(intensity, color, orientation), take center-surround differences
across scales, normalize, sum. Locally distinctive regions emerge.
We ship a simplified pure-math variant:
- intensity pyramid (grayscale via Rec.709)
- edge-magnitude pyramid (Sobel)
- center-surround differences at 3 scale ratios
- sum into single 8-bit saliency map
What this unlocks:
+ automatic subject detection ("where's the main thing")
+ cropping suggestions (frame the high-salience region)
+ image-quality (boring images have flat salience)
+ auto-focus / auto-exposure region suggestion
Per CAPTAIN_MORONI_DOCTRINE this measures IMAGE distinctiveness.
It does not classify subjects; it does not rank persons; it
only identifies regions that stand out from their surround.
genealogy_id: itti_koch_1998_salience + koch_ullman_1985_attention
lineage_id: center_surround_difference + multiscale_integration
axioms: NX_AX_NORMALIZATION_PRESERVES_RANK
dependencies 3 imports · 4 importers
imports: syscalls.nxnx_image.nxnx_scale.nx
imported by: nx_aesthetics.nxnx_image_clarity.nxnx_salience_test.nxnx_vision_pipeline_test.nx
structs
| none |
consts
| none |
functions
| 43 | func nx_salience_upsample_2x(src: *Image) -> *Image |
| 64 | func nx_salience_upsample_pow2(src: *Image, n: i64) -> *Image |
| 76 | func nx_salience_abs_diff(a: *Image, b: *Image) -> *Image |
| 104 | func nx_salience_intensity(gray: *Image) -> *Image |
| 153 | func nx_salience_combined(gray: *Image) -> *Image |
| 186 | func nx_salience_peak(sal: *Image, out_x: *i64, out_y: *i64) -> i64 |
| 216 | func nx_salience_flatness(sal: *Image) -> i64 |