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-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 仓库,都必须遵守我们的 行为准则。
许可证
以下任一许可证下授权
- Apache 许可证 2.0 版,(LICENSE-APACHE 或 https://apache.ac.cn/licenses/LICENSE-2.0)
- MIT 许可证 (LICENSE-MIT 或 https://opensource.org/licenses/MIT)
依赖项
~4MB
~83K SLoC