我使用了opencv附带的示例代码来校准我的笔记本电脑网络摄像头。
我从棋盘上创建了大约 82 张图像,并使用代码来处理它们。
结果如下:
This is a camera calibration sample.
Usage: calibration configurationFile
Near the sample file you'll find the configuration file, which has detailed help
of how to edit it. It may be any OpenCV supported file format XML/YAML.
Re-projection error reported by calibrateCamera: 0.424482
Calibration succeeded. avg re projection error = 0.424483
|似乎平均投影误差与以前相同。为什么会这样?
如何创建地图以将未校准的图像转换为校准的图像?
校准工具应该生成一个 XML/YML 文件,其中存储相机系数K
和失真系数D
。您可以使用 cv::FileStorage
类(文档链接)加载这些系数。本教程介绍如何使用此类。
获得校准数据(矩阵K
和失真系数D
)后,您可以使用undistort
功能(文档链接)生成校正镜头失真的理想图像。
与您的第二个问题相关,控制台中显示的两个数字都是校准后重投影误差的估计值,一个在校准过程结束时报告,另一个由校准样本可执行文件报告。