本文内容
● 获取校准数据
● 坐标转换函数
● 有关示例
● 后续步骤
本文齐全复用Azure kinect 的校准函数,,,,,,,使用校准函数能够转换Femto Bolt 设备上每个传感器的坐标系之间的点。。。。。。 必要转换整个图像的利用法式能够利用图像转换提供的加快操作。。。。。。
获取校准数据
必要获取设备校准数据能力执行坐标系转换。。。。。。 校准数据存储在 k4a_calibration_t 数据类型中。。。。。。 该数据通过 k4a_device_get_calibration() 函数,,,,,,,从设备中获取。。。。。。 校准数据针对分歧设备,,,,,,,或统一个设备的分歧工作模式都不一样。。。。。。 因而,,,,,,,k4a_device_get_calibration() 必要使用 depth_mode 和 color_resolution 参数作为输入。。。。。。
OpenCV 兼容性
校准参数与 OpenCV 兼容。。。。。。 有关各个相机校对参数的具体信息,,,,,,,另请参阅 OpenCV 文档。。。。。。 另请参阅 SDK 的 OpenCV 兼容性示例,,,,,,,其中演示了 k4a_calibration_t 类型与相应 OpenCV 数据结构之间的转换。。。。。。
坐标转换函数
下图显示了 Femto Bolt 的分歧坐标系,,,,,,,以及用于在这些坐标系之间转换的函数。。。。。。 为了使插图显得简洁,,,,,,,我们省略了陀螺仪和加快度传感器的 3D 坐标系。。。。。。
有关镜头失真的备注:2D 坐标始终引用 SDK 中失真的图像。。。。。。 SDK 的失真改过示例 演示了图像失真改过。。。。。。 通常情况下,,,,,,,3D 点始终不会受到镜头失真的影响。。。。。。
在 3D 坐标系之间转换
函数 k4a_calibration_3d_to_3d() 使用相机的表部校准将源坐标系的 3D 点转换为指标坐标系的 3D 点。。。。。。 源和指标可设置为四个 3D 坐标系中的任何一个,,,,,,,即,,,,,,,彩色相机、深度相机、陀螺仪或加快度传感器。。。。。。 若是源和指标一样,,,,,,,则返回未批改的输入 3D 点作为输出。。。。。。
函数 k4a_calibration_3d_to_2d() 将源坐标系的 3D 点转换为指标相机的 2D 像素坐标。。。。。。 此函数通常称为投影函数。。。。。。 只管源能够设置为四个 3D 坐标系中的任何一个,,,,,,,但指标必须是深度相机或彩色相机。。。。。。 若是源和指标分歧,,,,,,,则会使用 k4a_calibration_3d_to_3d() 将输入的 3D 点转换为指标相机的 3D 坐标系。。。。。。 以指标相机坐标系暗示 3D 点后,,,,,,,将使用指标相机的内部校准推算相应的 2D 像素坐标。。。。。。 若是 3D 点超出了指标相机的可视区域,,,,,,,则有效值将设置为 0。。。。。。
函数 k4a_calibration_2d_to_3d() 将源相机的 2D 像素坐标转换为指标相机坐标系的 3D 点。。。。。。 源必须是彩色相机或深度相机。。。。。。 指标可设置为四个 3D 坐标系中的任何一个。。。。。。 除了 2D 像素坐标表,,,,,,,源相机图像中像素的深度值(以毫米为单元)也必要作为函数的输入,,,,,,,在彩色相机几何中推导出深度值的一种步骤是使用函数 k4a_transformation_depth_image_to_color_camera()。。。。。。 该函数使用源相机的内部校准通过指定的像素坐标推算源相机焦点引出的 3D 射线。。。。。。 而后,,,,,,,使用深度值查找此射线简直切 3D 点地位。。。。。。 此操作通常称为取缔投影函数。。。。。。 若是源和指标相机分歧,,,,,,,该函数会通过 k4a_calibration_3d_to_3d() 将 3D 点转换为指标的坐标系。。。。。。 若是 2D 像素坐标超出了源相机的可视区域,,,,,,,则有效值将设置为 0。。。。。。
函数 k4a_calibration_2d_to_2d() 将源相机的 2D 像素坐标转换为指标相机的 2D 像素坐标。。。。。。 源和指标必须设置为彩色相机或深度相机。。。。。。 该函数必要将源相机图像中像素的深度值(以毫米为单元)作为输入,,,,,,,在彩色相机几何中推导出深度值的一种步骤是使用函数 k4a_transformation_depth_image_to_color_camera()。。。。。。 它将挪用 k4a_calibration_2d_to_3d() 转换为源相机系统的 3D 点。。。。。。 而后,,,,,,,它将挪用 k4a_calibration_3d_to_2d() 转换为指标相机图像的 2D 像素坐标。。。。。。 若是 k4a_calibration_2d_to_3d() 或 k4a_calibration_3d_to_2d() 返回无效的了局,,,,,,,则有效值将设置为 0。。。。。。
有关示例
● OpenCV 兼容性示例
● 失真改过示例
● 急剧点云示例
相识相机校对后,,,,,,,接下来还能够相识设备同步。。。。。。