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 在 算法
1,791 每月下载量
在 opencv-ros-camera 中使用
105KB
2K SLoC
📷 📐 摄影测量中的相机几何模型

关于
该crate实现了可能对摄影测量有用的相机几何模型。
该crate提供了一些相机模型,针孔透视相机 和 正射相机。添加另一个相机模型需要实现 IntrinsicParameters trait。请参阅 opencv_ros_camera crate 中的示例。
还提供了函数 best_intersection_of_rays(),该函数确定与多条射线交点相对应的最佳3D点。因此,此crate对于多视图几何也非常有用。
特性
- 广泛使用静态类型以确保坐标系统、矩阵尺寸等不会出现令人不愉快的运行时问题。
- 使用
serde进行序列化和反序列化。使用serde-serializecargo功能启用。 - 使用
nalgebracrate 中的线性代数和类型。 - 可以通过实现
IntrinsicParameterstrait 来创建新的相机模型。虽然此crate中实现的相机模型是线性的,但实现不必是线性的。例如,opencv_ros_cameracrate 展现了 畸变。 - 基于
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 仓库,都必须遵守我们的 行为准则。
许可证
以下任一许可证下授权
- Apache 许可证 2.0 版,(LICENSE-APACHE 或 https://apache.ac.cn/licenses/LICENSE-2.0)
- MIT 许可证 (LICENSE-MIT 或 https://open-source.org.cn/licenses/MIT)
依赖项
~4MB
~83K SLoC