标定
标定概述
相机标定是计算机视觉和图像处理中的一个关键步骤,旨在确定相机的内部参数(内参)和外部参数(外参),以便将二维图像坐标转换为三维世界坐标,因此,相机标定对于单目(单摄像头)和双目(双摄像头,通常为立体 RGB 相机)系统都有重要意义,但标定过程往需要一段略微复杂的代码,且容易出错。
相机标定一般分为单目标定、双目标定和手眼标定这三大类别,分别用于确定相机的内参、外参和不同坐标系之间的变换关系。而 unireo 目前已实现单目标定以及双目标定,即可获取相机的内参以及外参。
calib 子模块
在 unireo 中,calib 子模块负责实现标定数据的数据类型,并提供一些关于标定数据的操作方法。在您的项目中,可以这样导入 calib 子模块:
calib 子模块实现的标定数据类
calib 子模块中可用以下两个标定数据类型:
MonoCalibData:单目相机标定数据类,用于存储单目相机标定所需的数据StereoCalibData:双目相机标定数据类,用于存储双目相机标定所需的数据
标定数据类型及 API 的封装性
实际上,您往往并不需要知道这两个数据类型是如何构造与实现的,只需要知道这两个类的实例对象可以使用成员运算符 . 来访问其中的成员数据即可。确切地说, MonoCalibData 与 StereoCalibData 是定义在 calib.calib_data 子模块中的,通过 __init__.py 引入 calib 父模块中。而这些数据类型又分别包含许多类成员,每个类成员又是一个大型的 numpy.ndarray 数组。在关于单、双目标定以及 calib.mono_calib 和 calib.stereo_calib 子模块的介绍中,您将会看到为什么不需要它们的构造与实现了。