#计算机视觉 #计算机 #视觉 #摄影测量 #3D模型

no-std cam-geom

摄影测量中的相机几何模型

21个版本 (破坏性)

0.15.0 2024年6月24日
0.14.1 2023年6月23日
0.14.0 2023年1月16日
0.13.0 2022年5月2日
0.2.1 2020年3月16日

#137算法

Download history 700/week @ 2024-04-16 198/week @ 2024-04-23 227/week @ 2024-04-30 165/week @ 2024-05-07 166/week @ 2024-05-14 126/week @ 2024-05-21 396/week @ 2024-05-28 127/week @ 2024-06-04 327/week @ 2024-06-11 267/week @ 2024-06-18 209/week @ 2024-06-25 199/week @ 2024-07-02 156/week @ 2024-07-09 343/week @ 2024-07-16 822/week @ 2024-07-23 374/week @ 2024-07-30

1,791 每月下载量
opencv-ros-camera 中使用

MIT/Apache

105KB
2K SLoC

Crates.io Documentation Crate License Dependency status build

📷 📐 摄影测量中的相机几何模型

pinhole model image

(3D模型由 Adan 创建,CC by 4.0)

关于

该crate实现了可能对摄影测量有用的相机几何模型。

该crate提供了一些相机模型,针孔透视相机正射相机。添加另一个相机模型需要实现 IntrinsicParameters trait。请参阅 opencv_ros_camera crate 中的示例。

还提供了函数 best_intersection_of_rays(),该函数确定与多条射线交点相对应的最佳3D点。因此,此crate对于多视图几何也非常有用。

特性

  • 广泛使用静态类型以确保坐标系统、矩阵尺寸等不会出现令人不愉快的运行时问题。
  • 使用 serde 进行序列化和反序列化。使用 serde-serialize cargo功能启用。
  • 使用 nalgebra crate 中的线性代数和类型。
  • 可以通过实现 IntrinsicParameters trait 来创建新的相机模型。虽然此crate中实现的相机模型是线性的,但实现不必是线性的。例如,opencv_ros_camera crate 展现了 畸变
  • 基于 nalgebra::Isometry3 类型实现的 ExtrinsicParameters,用于处理相机姿态。
  • 无需标准库(禁用默认功能以禁用对 std 的使用)并且没有堆分配。换句话说,它可以在没有操作系统的裸机微控制器上运行。
  • 详尽的文档和测试。
  • 需要 Rust 版本 1.40 或更高。

测试

单元测试

运行基本单元测试

cargo test

运行所有单元测试

cargo test --features serde-serialize

测试 no_std

由于 thumbv7em-none-eabihf 目标没有提供 std,我们可以为它构建以检查我们的包是否意外地拉入了 std。单元测试需要 std,因此不能在 no_std 平台上运行。以下代码将失败,如果存在 std 依赖项

# install target with: "rustup target add thumbv7em-none-eabihf"
cargo build --no-default-features --target thumbv7em-none-eabihf

行为准则

与该软件有任何互动的人,包括但不限于这个 GitHub 仓库,都必须遵守我们的 行为准则

许可证

以下任一许可证下授权

依赖项

~4MB
~83K SLoC