16 个版本 (破坏性)
新 0.13.0 | 2024 年 8 月 4 日 |
---|---|
0.12.0 | 2023 年 8 月 28 日 |
0.11.0 | 2022 年 5 月 2 日 |
0.9.1 | 2021 年 9 月 27 日 |
0.2.2 | 2020 年 3 月 22 日 |
#505 in 算法
每月 810 次下载
23KB
293 行
Crate dlt
用于 Rust 语言
DLT (直接线性变换) 相机标定算法
通常用于校准相机,需要至少 6 对 2D 和 3D 位置对应点。
测试
单元测试
运行单元测试
cargo test
测试 no_std
由于 thumbv7em-none-eabihf
目标没有 std
可用,我们可以为它构建,以检查我们的 crate 是否意外地引入了 std。单元测试需要 std,因此不能在 no_std
平台上运行。以下示例将失败,如果存在 std 依赖项
# install target with: "rustup target add thumbv7em-none-eabihf"
cargo build --no-default-features --target thumbv7em-none-eabihf
示例
use dlt::{dlt_corresponding, CorrespondingPoint};
let points: Vec<CorrespondingPoint<f64>> = vec![
CorrespondingPoint {
object_point: [-1., -2., -3.],
image_point: [219.700, 39.400],
},
CorrespondingPoint {
object_point: [0., 0., 0.],
image_point: [320.000, 240.000],
},
CorrespondingPoint {
object_point: [1., 2., 3.],
image_point: [420.300, 440.600],
},
CorrespondingPoint {
object_point: [1.1, 2.2, 3.3],
image_point: [430.330, 460.660],
},
CorrespondingPoint {
object_point: [4., 5., 6.],
image_point: [720.600, 741.200],
},
CorrespondingPoint {
object_point: [4.4, 5.5, 6.6],
image_point: [760.660, 791.320],
},
CorrespondingPoint {
object_point: [7., 8., 9.],
image_point: [1020.900, 1041.800],
},
CorrespondingPoint {
object_point: [7.7, 8.8, 9.9],
image_point: [1090.990, 1121.980],
},
];
let pmat = dlt_corresponding(&points, 1e-10).unwrap();
// could now call `cam_geom::Camera::from_perspective_matrix(&pmat)`
另请参阅
您可能还对以下内容感兴趣
cam-geom
- Rust crate,包含 3D 相机模型,可以使用 DLT 的校准数据。dlt-examples
- 位于 dlt 仓库中的未发布 crate,演示了与 cam-geom 库一起使用的方法。
重新生成 README.md
可以使用以下方法重新生成 README.md
文件
cargo readme > README.md
行为准则
任何与该软件互动的人,包括但不限于这个 GitHub 仓库,都必须遵循我们的 行为准则。
许可证
根据以下任一项许可证授权
- Apache 许可证第 2 版,(LICENSE-APACHE 或 https://apache.ac.cn/licenses/LICENSE-2.0)
- MIT 许可证 (LICENSE-MIT 或 https://opensource.org/licenses/MIT)
依赖项
~3.5MB
~74K SLoC