1 个不稳定版本
0.1.0 | 2024年6月29日 |
---|
#1183 在 算法
18KB
356 代码行
单应性矩阵 ~ Rust
单应性矩阵是一个用于计算二维空间中两个平面之间单应性矩阵的 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