#pose #vision #cv #computer-vision

sqpnp

A pure Rust implementation of the SQPnP perspective-n-point algorithm

2 unstable releases

new 0.2.0 Jan 27, 2025
0.1.0 Jan 18, 2025

#432 in Algorithms

Download history 111/week @ 2025-01-15 83/week @ 2025-01-22

194 downloads per month

MIT/Apache

41KB
953 lines

sqpnp-rs

crate

sqpnp-rs is a pure Rust implementation of the SQPnP perspective-n-point algorithm, based on the C++ implementation.

Usage

let p3d = [
    // 3D object points
    vec3(1.0, 1.0, 1.0),
];
let p2d = [
    // projected points
    vec2(-0.5, -0.5),
];

let mut solver = SqPnPSolver::<DefaultSqPnPParameters>::new();
if (solver.solve(&p3d, &p2d, None)) {
    let solution = solver.best_solution().unwrap();
    let r = solution.rotation_matrix();
    let t = solution.translation();

    // ...
}

See Also

There is another pure-Rust implementation of SQPnP, here: powei-lin/sqpnp_simple.

License

sqpnp-rs is permissively licensed under either the MIT License or the Apache 2.0 License.


lib.rs:

Implementation of SQPnP perspective-n-point algorithm.

This can be used to determine the pose of a 3D object given two sets of corresponding points: a set of 3D points from the object and a set of 2D projected points (often from an image).

See the C++ implementation for more information about SQPnP: terzakig/sqpnp.

Dependencies

~6.5MB
~174K SLoC