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§
Structs§
- Homography
Computation - Represents a homography computation, which involves finding a transformation matrix that maps points and lines from one coordinate system to another.
- Homography
Restrictions - Represents restrictions for a homography computation. The restrictions are represented as a vector of 2x9 matrices.