Skip to content

Homography is a Rust library for computing the homography matrix between two planes in a 2D space. It is based on the Direct Linear Transformation (DLT) algorithm and it is designed to be used in computer vision applications.

License

Notifications You must be signed in to change notification settings

edugzlez/homography-rs

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Homography ~ Rust

crates.io docs.rs codecov

Homography is a Rust library for computing the homography matrix between two planes in a 2D space. It is based on the Direct Linear Transformation (DLT) algorithm and it is designed to be used in computer vision applications.

The project is under development and will feature new updates and improvements.

Installation

Add this to your Cargo.toml:

[dependencies]
homography = "0.2.0"

or add it directly from crates.io:

cargo add homography

Usage

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

fn main() {
    // Create a new instance of HomographyComputation
    let 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);
}

License

This project is licensed under the MIT License - see the LICENSE file for details.

About

Homography is a Rust library for computing the homography matrix between two planes in a 2D space. It is based on the Direct Linear Transformation (DLT) algorithm and it is designed to be used in computer vision applications.

Topics

Resources

License

Stars

Watchers

Forks

Languages