Crate homography

Source
Expand description

A library for computing homography using point and line correspondences.

§Example

use homography::{HomographyComputation};
use homography::geo::{Point, Line};

// Create a new instance of HomographyComputation

let mut hc = HomographyComputation::new();

// Define points

let p1 = Point::new(148., 337.);
let p2 = Point::new(131., 516.);
let p3 = Point::new(321., 486.);
let p4 = Point::new(332., 370.);

let p1p = Point::new(0., 0.);
let p2p = Point::new(0., 60.);
let p3p = Point::new(80., 60.);
let p4p = Point::new(80., 0.);

// Define lines

let line1 = Line::from_points(&p1, &p2);
let line1p = Line::from_points(&p1p, &p2p);

// Add point and line correspondences

hc.add_point_correspondence(p1, p1p);
hc.add_point_correspondence(p2, p2p);
hc.add_point_correspondence(p3, p3p);
hc.add_point_correspondence(p4, p4p);

hc.add_line_correspondence(line1, line1p);

// Get restrictions and compute solution

let restrictions = hc.get_restrictions();

let solution = restrictions.compute();

// Print the solution

println!("Matrix: {}", solution.matrix);
println!("Value: {}", solution.value);

Modules§

functions
geo
interface
pairs

Structs§

HomographyComputation
Represents a homography computation, which involves finding a transformation matrix that maps points and lines from one coordinate system to another.
HomographyRestrictions
Represents restrictions for a homography computation. The restrictions are represented as a vector of 2x9 matrices.