# 更新日志
本文档记录了 COLMAP Rust 库的所有重要变更。
格式基于 [Keep a Changelog](https://keepachangelog.com/zh-CN/1.0.0/),
并且本项目遵循 [语义化版本控制](https://semver.org/lang/zh-CN/)。
## [未发布]
### 新增
- 完整的 API 文档和使用示例
- README.md 文档
- 更新日志文件
### 修改
- 改进了所有模块的文档注释
- 增强了代码示例的完整性
## [0.1.2] - 2025-01-31
### 修复
- 🔧 修复了 `ImageId` 类型重复定义导致的编译错误
- 🔧 修复了 FAST 特征检测器测试中的字段访问问题
- 🔧 添加了缺失的 `Point2` 类型导入
- ✅ 所有单元测试现在都能正常通过(92个测试)
### 改进
- 📈 优化了 FAST 特征检测器的测试用例
- 🧪 改进了角点检测测试的稳定性
- 📚 完善了代码文档和注释
## [0.1.0] - 2025-08-30
### 新增
- 🎉 初始版本发布
- 核心数据结构和类型定义
- 相机模型(针孔、鱼眼等)
- 图像数据结构
- 特征点和描述符
- 3D 点和轨迹
- 相机姿态和变换
- 重建结果数据结构
- 特征提取和匹配模块
- SIFT 特征检测器
- ORB 特征检测器
- FAST 特征检测器
- Harris 角点检测器
- 多种描述符提取器(SIFT、ORB、BRIEF、BRISK)
- 特征匹配器(暴力匹配、FLANN、比率测试、交叉验证)
- 几何验证模块
- 完整的特征处理流水线
- Structure from Motion (SfM) 模块
- 增量式 SfM 重建
- 三角测量算法
- 束调整优化配置
- 姿态估计
- Multi-View Stereo (MVS) 模块
- 立体匹配算法
- 深度图估计
- 点云融合
- 网格重建
- 数学工具模块
- 基础线性代数运算
- 几何变换
- 输入输出模块
- 数据序列化和反序列化
- 工具函数模块
- 通用辅助函数
- 完整的单元测试覆盖
- 核心功能测试
- 特征提取测试
- SfM 算法测试
- MVS 算法测试
- 错误处理系统
- 统一的错误类型 `ColmapError`
- 详细的错误信息
- 结果类型 `Result<T>`
### 技术特性
- 使用 Rust 2024 Edition
- 基于 nalgebra 的数学计算
- 支持 serde 序列化
- 模块化架构设计
- 类型安全的 API
- 零成本抽象
- 内存安全保证
### 依赖项
- `nalgebra` - 线性代数计算
- `serde` - 序列化支持
- `thiserror` - 错误处理
- `image` - 图像处理
- `rayon` - 并行计算
### 文档
- 完整的 API 文档
- 使用示例和教程
- 架构设计文档
- 开发计划文档
### 性能
- 优化的算法实现
- 并行处理支持
- 内存高效的数据结构
## [计划中的功能]
### 0.2.0 - 性能优化版本
- GPU 加速支持
- 更多特征检测算法
- 改进的束调整算法
- 更好的内存管理
### 0.3.0 - 扩展功能版本
- 实时 SLAM 支持
- 更多相机模型
- 高级 MVS 算法
- 网格优化和简化
### 1.0.0 - 稳定版本
- API 稳定化
- 完整的文档
- 性能基准测试
- 生产环境就绪
---
## 版本说明
### 语义化版本控制
本项目遵循语义化版本控制规范:
- **主版本号**:不兼容的 API 修改
- **次版本号**:向下兼容的功能性新增
- **修订号**:向下兼容的问题修正
### 变更类型
- **新增** - 新功能
- **修改** - 现有功能的变更
- **弃用** - 即将移除的功能
- **移除** - 已移除的功能
- **修复** - 错误修复
- **安全** - 安全相关的修复
### 兼容性
- 0.x.x 版本可能包含破坏性变更
- 1.0.0 及以后版本将保持 API 稳定性
- 重大变更将在发布说明中详细说明
### 升级指南
每个版本的升级指南将在发布时提供,包括:
- 破坏性变更列表
- 迁移步骤
- 代码示例
- 常见问题解答
---
**注意**:日期格式为 YYYY-MM-DD。未发布的版本标记为 [未发布]。