nx_featmatch.nx
buildroot/runtime/nx_featmatch.nx
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
imports: nx_planesweep.nxnx_features.nx
imported by: nobody (leaf or entry point)
structs
| none |
consts
| 11 | const FM_RATIO: i64 = 80 // winner must beat the runner-up by 20% or the match is AMBIGUOUS -> dropped |
| 12 | const FM_EXCL: i64 = 3 // runner-up must be this far from the winner (see fm_match_one) |
functions
| 15 | func fm_load(src: *i64, w: i64, h: i64) -> *Image called by 1: fm_wire |
| 28 | func fm_corners(img: *Image, thresh: i64, out: *i64, maxn: i64) -> i64 |
| 55 | func fm_match_one(ia: *i64, ib: *i64, w: i64, h: i64, ax: i64, ay: i64, rad: i64, out2: *i64) -> i64 |
| 108 | func fm_wire(ia: *i64, ib: *i64, w: i64, h: i64, thresh: i64, rad: i64, pairs: *i64, maxn: i64) -> i64 |