美狮贵宾会

美狮贵宾会

购置
京东 蘺uan
中文
English

获取图像数据

本文内容

● 设置并启动装备

● 稳固

● 重Capture中获取Image

● 获取图像数据

● 后续步骤

本页面详细先容了通过Femto Bolt获取深度和彩色图像数据的要领。 获取图像数据前,需要先打开装备,并通过设置开启数据流,然后就可以获取图像数据。

在设置和获取图像数据之前,必须查找并打开装备。

你可以参考 streaming sample, 这个例子演示了怎样使用本文中形貌的函数

本文将先容以下函数:

● k4a_device_start_cameras()

● k4a_device_get_capture()

● k4a_capture_get_depth_image()

● k4a_image_get_buffer()

● k4a_image_release()

● k4a_capture_release()

● k4a_device_stop_cameras()


设置并启动装备

Femto Bolt   深度相机和彩色相机支持多种模式、分辨率和输特殊式。 有关完整列表,请参考硬件规格

流设置是通过 k4a_device_configuration_t 数据结构设置。

k4a_device_configuration_t config = K4A_DEVICE_CONFIG_INIT_DISABLE_ALL;
config.camera_fps = K4A_FRAMES_PER_SECOND_30;
config.color_format = K4A_IMAGE_FORMAT_COLOR_MJPG;
config.color_resolution = K4A_COLOR_RESOLUTION_2160P;
config.depth_mode = K4A_DEPTH_MODE_NFOV_UNBINNED;
if (K4A_RESULT_SUCCEEDED != k4a_device_start_cameras(device, &config))
{
    printf("Failed to start device\n");
    goto Exit;
}

相机启动后便一直捕捉数据,直到挪用k4a_device_stop_cameras()函数或装备Close。


稳固

使用多装备同步功效时,美狮贵宾会强烈建议使用牢靠的pu光设置。  若是使用自动pu光,最多可能需要20 。枷窈椭∷俾什牌裙。


从Device中获取Capture工具

开启视频流后,Capture用来获取图像数据,每个Capture包罗深度图像、IR 图像、彩色图像或这些图像的组合。

默认情形下,API 只会在收到流模式请求的所有图像后才返回捕捉。 可以通过将 k4a_device_configuration_t 的 synchronized_images_only 参数设置为 false,从而将 API 设置为在深度图像或彩色图像可用后,连忙返回仅包罗这些图像的部门捕捉。

// Capture a depth frame
k4a_capture_t capture = NULL;
switch (k4a_device_get_capture(device, &capture, TIMEOUT_IN_MS))
{
case K4A_WAIT_RESULT_SUCCEEDED:
    break;
case K4A_WAIT_RESULT_TIMEOUT:
    printf("Timed out waiting for a capture\n");
    continue;
    break;
case K4A_WAIT_RESULT_FAILED:
    printf("Failed to read a capture\n");
    goto Exit;
}

在 API 乐成返回Capture后,当你用完Capture工具时,必须挪用 k4a_capture_release()。


从Capture中获取Image

若要获取Capture中包罗的图像,请针对差异的图像类型挪用响应的函数。

● k4a_capture_get_color_image()

● k4a_capture_get_depth_image()

● k4a_capture_get_ir_image()

获取完图像数据后,需要挪用k4a_image_release()释放k4a_image_t句柄。


获取图像数据

k4a_image_t 提供了获取图像属性的响应函数。

如要获取图像的内存缓冲区,请使用 k4a_image_get_buffer。

以下示例演示怎样从Capture中获取深度图像,获取IR和彩色图像的要领类似。 必须将图像类型变量替换为准确的图像类型,例如 ir 或 color。

// Access the depth16 image
k4a_image_t image = k4a_capture_get_depth_image(capture);
if (image != NULL)
{
    printf(" | Depth16 res:%4dx%4d stride:%5d\n",
            k4a_image_get_height_pixels(image),
            k4a_image_get_width_pixels(image),
            k4a_image_get_stride_bytes(image));
    // Release the image
    k4a_image_release(image);
}
// Release the capture
k4a_capture_release(capture);


后续步骤

既然你已相识怎样获取彩色图像和深度图像,使用 Femto Bolt 装备。 你还可以:获取IMU数据 和 图像转换

【网站舆图】【sitemap】