#point #matrix #line #computer-vision #transformation #space #dlt

单应性矩阵

使用点和线对应关系进行单应性矩阵估计

1 个不稳定版本

0.1.0 2024年6月29日

#1183算法

MIT 许可证

18KB
356 代码行

单应性矩阵 ~ Rust

crates.io docs.rs codecov

单应性矩阵是一个用于计算二维空间中两个平面之间单应性矩阵的 Rust 库。它基于直接线性变换(DLT)算法,旨在用于计算机视觉应用。

该项目正在开发中,将包含新的更新和改进。

安装

将此添加到您的 Cargo.toml

[dependencies]
homography = "0.1.0"

或直接从 crates.io 添加

cargo add homography

使用

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);
}

许可证

本项目遵循 MIT 许可证 - 有关详细信息,请参阅 LICENSE 文件。

依赖项

~3MB
~57K SLoC