z6娱乐

z6娱乐

图像转换

本文内容

● k4a_transformation 函数

● 示例

● 后续步骤

本文齐全复用Azure Kinect DK的图像转换职能,,,,, ,重要实现D2C,,,,, ,C2D,,,,, ,深度转点云的职能。 。。。。。。。


k4a_transformation 函数

k4a_transformation 是 Azure Kinect DK 用于协调相机系统之间去使用和转换图像。 。。。。。。。所有带有 k4a_transformation 前缀的函数针对整个图像运行。 。。。。。。。 它们必要通过 k4a_transformation_create() 获取转换句柄 k4a_transformation_t,,,,, ,并通过 k4a_transformation_destroy() 开释句柄。 。。。。。。。 你还能够参考 SDK 转换示例,,,,, ,演示了若何使用这几个函数。 。。。。。。。

本文将介绍以下函数:

● k4a_transformation_depth_image_to_color_camera()

● k4a_transformation_depth_image_to_color_camera_custom()

● k4a_transformation_color_image_to_depth_camera()

● k4a_transformation_depth_image_to_point_cloud()


k4a_transformation_depth_image_to_color_camera

概述

函数 k4a_transformation_depth_image_to_color_camera() 将深度图从深度相机的视点转换为彩色相机的视点。 。。。。。。。 此函数旨在天生所谓的 RGB-D 图像,,,,, ,其中,,,,, ,D 暗示录造深度值的附加图像通路。 。。。。。。。 鄙人图中能够看到,,,,, ,k4a_transformation_depth_image_to_color_camera() 输出的深度图像与彩色图像如同它们取自统一视点(即,,,,, ,彩色相机的视点)。 。。。。。。。

image.png 

实现

此转换函数比单纯针对每个像素挪用 k4a_calibration_2d_to_2d() 更为复杂。 。。。。。。。 它将深度相机几何结构中的三角网格扭曲成彩色相机的几何结构。 。。。。。。。 使用三角网格能够预防转换的深度图像出现孔洞。 。。。。。。。 Z 缓冲区确保正确处置遮挡物。 。。。。。。。 默认已为此函数启用 GPU 加快。 。。。。。。。

参数

输入参数是转换句柄和深度图像。 。。。。。。。 深度图像的分辨率必须与创建转换句柄时指定的 depth_mode 相匹配。 。。。。。。。 例如,,,,, ,若是转换句柄是使用 1024x1024 K4A_DEPTH_MODE_WFOV_UNBINNED 模式创建的,,,,, ,则深度图像的分辨率必须是 1024x1024 像素。 。。。。。。。 输出是必要由用户挪用 k4a_image_create() 分配的已转换深度图像。 。。。。。。。 已转换的深度图像的分辨率必须与创建转换句柄时指定的 color_resolution 相匹配。 。。。。。。。 例如,,,,, ,若是彩色分辨率设置为 K4A_COLOR_RESOLUTION_1080P,,,,, ,则输出图像的分辨率必须是 1920x1080 像素。 。。。。。。。 输出图像步幅设置为 width * sizeof(uint16_t),,,,, ,由于图像存储 16 位深度值。 。。。。。。。


k4a_transformation_depth_image_to_color_camera_custom

概述

函数 k4a_transformation_depth_image_to_color_camera_custom() 将深度图和自界说图像从深度相机的视点转换为彩色相机的视点。 。。。。。。。 作为 k4a_transformation_depth_image_to_color_camera() 的扩大,,,,, ,此函数旨在能天生对应的自界说图像,,,,, ,其每个像素与彩色相机的相应像素坐标相匹配。 。。。。。。。

实现

此转换函数天生转换的深度图像的方式与 k4a_transformation_depth_image_to_color_camera() 一样。 。。。。。。。 若要转换自界说图像,,,,, ,此函数提供了使用线性内插或最近的邻域内插的选项。 。。。。。。。 使用线性内插能够在转换后的自界说图像中创建新值。 。。。。。。。 使用最近的邻域内插将预防原始图像中不存在的值呈此刻输出图像中,,,,, ,但会导致图像不太滑润。 。。。。。。。 自界说图像应为单通路 8 位或 16 位。 。。。。。。。 默认已为此函数启用 GPU 加快。 。。。。。。。

参数

输入参数为转换句柄、深度图像、自界说图像和内插类型。 。。。。。。。 深度图像和自界说图像的分辨率必须与创建转换句柄时指定的 depth_mode 相匹配。 。。。。。。。 例如,,,,, ,若是转换句柄是使用 1024x1024 K4A_DEPTH_MODE_WFOV_UNBINNED 模式创建的,,,,, ,则深度图像和自界说图像的分辨率必须是 1024x1024 像素。 。。。。。。。 interpolation_type 应为 K4A_TRANSFORMATION_INTERPOLATION_TYPE_LINEAR 或 K4A_TRANSFORMATION_INTERPOLATION_TYPE_NEAREST。 。。。。。。。 输出是转换后的深度图像和转换后的自界说图像,,,,, ,必要由用户通过挪用 k4a_image_create() 来分配。 。。。。。。。 转换后的深度图像和转换后的自界说图像的分辨率必须与创建转换句柄时指定的 color_resolution 相匹配。 。。。。。。。 例如,,,,, ,若是彩色分辨率设置为 K4A_COLOR_RESOLUTION_1080P,,,,, ,则输出图像的分辨率必须是 1920x1080 像素。 。。。。。。。 输出深度图像步幅设置为 width * sizeof(uint16_t),,,,, ,由于该图像存储 16 位深度值。 。。。。。。。 输入的自界说图像和转换后的自界说图像的体式必须为 K4A_IMAGE_FORMAT_CUSTOM8 或 K4A_IMAGE_FORMAT_CUSTOM16,,,,, ,应相应设置对应的图像步幅。 。。。。。。。


k4a_transformation_color_image_to_depth_camera

概述

函数 k4a_transformation_color_image_to_depth_camera() 将彩色图像从彩色相机的视点转换为深度相机的视点(参阅上图)。 。。。。。。。 使用此函数能够天生 RGB-D 图像。 。。。。。。。

实现

对于深度图的每个像素,,,,, ,该函数使用像素的深度致反推算彩色图像中的相应子像素坐标。 。。。。。。。 而后,,,,, ,我们将在彩色图像中的此坐标处查找色彩值。 。。。。。。。 在彩色图像中执行双线性内插,,,,, ,以获取子像素精度的色彩值。 。。。。。。。 没有关联的深度读数的像素将分配到输出图像中的 BGRA 值 [0,0,0,0]。 。。。。。。。 默认已为此函数启用 GPU 加快。 。。。。。。。 由于此步骤会在转换的彩色图像中产生孔洞,,,,, ,并且不会处置遮挡物,,,,, ,因而我们建议改用函数 k4a_transformation_depth_image_to_color_camera()。 。。。。。。。

参数

输入参数是转换句柄、深度图像和彩色图像。 。。。。。。。 深度图像和彩色图像的分辨率必须与创建转换句柄时指定的 depth_mode 和 color_resolution 相匹配。 。。。。。。。 输出是必要由用户挪用 k4a_image_create() 分配的已转换彩色图像。 。。。。。。。 已转换的彩色图像的分辨率必须与创建转换句柄时指定的 depth_resolution 相匹配。 。。。。。。。 输出图像存储四个 8 位值(暗示每个像素的 BGRA)。 。。。。。。。 因而,,,,, ,图像的步幅为 width * 4 * sizeof(uint8_t)。 。。。。。。。 数据挨次为像故旧错式,,,,, ,即,,,,, ,蓝色值 - 像素 0,,,,, ,绿色值 - 像素 0,,,,, ,红色值 - 像素 0,,,,, ,alpha 值 - 像素 0,,,,, ,蓝色值 - 1,,,,, ,依此类推。 。。。。。。。


k4a_transformation_depth_image_to_point_cloud

概述

函数 k4a_transformation_depth_image_to_point_cloud() 将相机拍摄的 2D 深度图转换为统一相机的坐标系中的 3D 点云。 。。。。。。。 因而,,,,, ,相机可所以深度相机或彩色相机。 。。。。。。。

实现

该函数的了局与针对每个像素运行 k4a_calibration_2d_to_2d() 的了局一样,,,,, ,不外推算效能更高。 。。。。。。。 挪用 k4a_transformation_create() 时,,,,, ,我们会预先推算一个所谓的 xy 查找表,,,,, ,用于存储每个图像像素的 x 和 y 比例因子。 。。。。。。。 挪用 k4a_transformation_depth_image_to_point_cloud() 时,,,,, ,我们会通过将像素的 x 比例因子与像素的 Z 坐标相乘,,,,, ,来获取像素的 3D X 坐标。 。。。。。。。 类似地,,,,, ,与 y 比例因子相乘能够推算出 3D Y 坐标。 。。。。。。。 SDK 的急剧点云示例 演示了若何推算 xy 表。 。。。。。。。 例如,,,,, ,用户能够遵循示例代码实显熹自有版本的此函数,,,,, ,以加快其 GPU 管路。 。。。。。。。

参数

输入参数是转换句柄、相机注明符和深度图像。 。。。。。。。 若是相机注明符设置为深度,,,,, ,则深度图像的分辨率必须与创建转换句柄时指定的 depth_mode 相匹配。 。。。。。。。 不然,,,,, ,若是注明符设置为彩色相机,,,,, ,则分辨率必须与所选 color_resolution 的分辨率相匹配。 。。。。。。。 输出参数是必要由用户挪用 k4a_image_create() 分配的 XYZ 图像。 。。。。。。。 该 XYZ 图像的分辨率必须与输入的深度图的分辨率相匹配。 。。。。。。。 我们将为每个像素存储三个带符号的 16 位坐标值(以毫米为单元)。 。。。。。。。 因而,,,,, ,XYZ 图像步幅设置为 width * 3 * sizeof(int16_t)。 。。。。。。。 数据挨次为像故旧错式,,,,, ,即,,,,, ,X 坐标 – 像素 0,,,,, ,Y 坐标 – 像素 0,,,,, ,Z 坐标 – 像素 0,,,,, ,X 坐标 – 像素 1,,,,, ,依此类推。 。。。。。。。 若是无法将某个像素转换为 3D,,,,, ,该函数将为该像素分配值 [0,0,0]。 。。。。。。。


示例

转换示例


后续步骤

相识若何使用 Femto Bolt 3D 相机SDK 图像转换函数后,,,,, ,接下来还能够相识校准函数。 。。。。。。。

【网站地图】【sitemap】