# 计算机视觉实验报告:相机标定与运动估计 ## 一、 实验目的 1. 了解相机标定和运动估计的基本原理; 2. 了解相机标定和运动估计的应用; 3. 掌握相机标定和运动估计实现方法。 ## 二、 基本思想 ### 相机标定 相机标定旨在计算相机的内部参数(焦距、主点坐标等)和外部参数(位置和方向),以及校正镜头畸变。使用棋盘格图案作为标定物,通过已知的3D-2D对应关系来求解相机矩阵和畸变系数。 ### 运动估计 运动估计是通过分析连续图像帧之间的特征匹配,确定两个视图之间的相对旋转和平移变换。这通常涉及基础矩阵或本质矩阵的计算,从而恢复场景的三维结构和相机运动。 ## 三、 源码 ### 相机标定代码 ```python # 见camera_calibration.py文件 ``` ### 运动估计代码 ```python # 见motion_estimation.py文件 ``` ## 四、 算法分析 ### 时间复杂度 - **相机标定**:主要耗时在角点检测O(N)和线性优化迭代求解参数,整体近似为O(N·T),其中N为像素数,T为迭代次数。 - **运动估计**:SIFT特征提取为O(M), 特征匹配为O(M²),RANSAC筛选为O(K)。总体时间复杂度约为O(M²+K)。 ### 空间复杂度 - **相机标定**:存储对象点和图像点的数组为O(P),P为角点数目。 - **运动估计**:保存关键点和描述符的空间为O(Q), Q为特征数量。 ## 五、 实验运行结果图 ### 相机标定角点检测示例 ![标定角点](results/calibration_corners.png) ### 运动估计特征匹配图 ![特征匹配](results/feature_matching.jpg) ## 六、 实验总结 这里可以添加你的实验心得和遇到的问题及解决方案。