code wiki / (root) / nx_featmatch.nx

nx_featmatch.nx

buildroot/runtime/nx_featmatch.nx

4878 B130 linesdepth 7pulls 18 transitivereach 0 importersview sourcekind orphan library
docsdependenciesstructsconstsfunctions

about

nx_featmatch.nx -- THE FEATURE-MATCH WIRE: two images in, CORRESPONDENCES out, with nothing hand-supplied. This is the last classical link the cadtwin census lists as missing on P1. Every reconstruction rung built so far (essential matrix, pose refinement, dense sweep, fusion) has been fed correspondences that the GATE constructed from ground truth -- which quietly assumes away the hardest part of a real capture. Uses the EXISTING nx_features Harris + non-max-suppression rather than a second corner detector; the only new work is bridging the flat i64 intensity buffers this reconstruction chain uses into the *Image struct nx_features expects, plus the matcher itself. license_tier: ORIGINAL

dependencies 2 imports · 0 importers

nx_planesweep.nx nx_features.nx nx_featmatch.nx

imports: nx_planesweep.nxnx_features.nx

imported by: nobody (leaf or entry point)

structs

none

consts

11const FM_RATIO: i64 = 80 // winner must beat the runner-up by 20% or the match is AMBIGUOUS -> dropped
12const FM_EXCL: i64 = 3 // runner-up must be this far from the winner (see fm_match_one)

functions

15func fm_load(src: *i64, w: i64, h: i64) -> *Image
called by 1: fm_wire
28func fm_corners(img: *Image, thresh: i64, out: *i64, maxn: i64) -> i64
55func fm_match_one(ia: *i64, ib: *i64, w: i64, h: i64, ax: i64, ay: i64, rad: i64, out2: *i64) -> i64
called by 1: fm_wire calls 1: ps_sad
108func fm_wire(ia: *i64, ib: *i64, w: i64, h: i64, thresh: i64, rad: i64, pairs: *i64, maxn: i64) -> i64