张正友相机标定Opencv实现带棋盘格打印PDF和测试图片

2022-12-14

张正友相机标定Opencv实现(带棋盘格打印PDF和测试图片)

项目简介

本项目提供了一个完整的张正友相机标定实现,使用OpenCV库在C++环境下完成。项目包含了棋盘格打印的PDF文件以及10张手机相机拍摄的标定图和20张摄像头拍摄的标定图。此外,还提供了一个完整的VS2015工程代码,代码中包含了详细的注释说明,方便用户理解和使用。

功能特点

  • 一键运行:项目提供了一个完整的VS2015工程,用户只需一键运行即可完成相机标定。
  • 详细注释:代码中包含了详细的注释,帮助用户理解每一步的操作和实现原理。
  • 多种标定图:项目提供了10张手机相机拍摄的标定图和20张摄像头拍摄的标定图,方便用户进行不同场景下的标定测试。
  • 标定结果输出:标定完成后,程序会输出相机的内参、外参、旋转和平移矩阵,并进行标定效果评价。
  • 图像矫正:使用标定结果对原始棋盘图进行矫正,展示标定效果。
  • 与Matlab对比:标定结果与Matlab的标定结果非常接近,验证了实现的准确性。

文件结构

  • Chessboard.pdf:棋盘格打印文件,用于打印棋盘格进行标定。
  • CalibrationImages/:包含10张手机相机拍摄的标定图和20张摄像头拍摄的标定图。
  • VS2015Project/:VS2015工程文件夹,包含完整的C++代码和项目配置文件。

使用说明

  1. 打印棋盘格:使用提供的Chessboard.pdf文件打印棋盘格。
  2. 拍摄标定图:使用手机相机或摄像头拍摄标定图,建议拍摄不同角度和距离的图片以提高标定精度。
  3. 导入图片:将拍摄的标定图放入CalibrationImages/文件夹中。
  4. 运行代码:打开VS2015工程,编译并运行代码。程序会自动读取标定图并进行标定。
  5. 查看结果:标定完成后,程序会输出相机的内参、外参、旋转和平移矩阵,并展示标定效果。

依赖库

  • OpenCV 3.x 或更高版本
  • Visual Studio 2015 或更高版本

参考文献

  • Zhang, Zhengyou. “A flexible new technique for camera calibration.” IEEE Transactions on Pattern Analysis and Machine Intelligence 22.11 (2000): 1330-1334.

贡献

欢迎大家提出问题和建议,或者提交Pull Request进行代码改进。

许可证

本项目采用MIT许可证,详情请参阅LICENSE文件。

下载链接

张正友相机标定Opencv实现带棋盘格打印PDF和测试图片