Share via


Azure Kinect-afbeeldingsgegevens ophalen

Op deze pagina vindt u meer informatie over het ophalen van installatiekopieën van de Azure Kinect. Het artikel laat zien hoe u afbeeldingen kunt vastleggen en openen die zijn afgestemd op de kleur en diepte van het apparaat. Voor toegang tot afbeeldingen moet u eerst het apparaat openen en configureren. Vervolgens kunt u afbeeldingen vastleggen. Voordat u een installatiekopieën configureert en vastlegt, moet u apparaat zoeken en openen.

U kunt ook het VOORBEELD van SDK-streaming raadplegen, waarin wordt uitgelegd hoe u de functies in dit artikel gebruikt.

De volgende functies worden behandeld:

Het apparaat configureren en starten

De twee camera's die beschikbaar zijn op uw Kinect-apparaat ondersteunen meerdere modi, resoluties en uitvoerindelingen. Raadpleeg de hardwarespecificaties van de Azure Kinect Development Kit voor een volledige lijst.

De streamingconfiguratie wordt ingesteld met behulp van waarden in de k4a_device_configuration_t structuur.

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;
}

Zodra de camera's zijn gestart, blijven ze gegevens vastleggen totdat k4a_device_stop_cameras() ze worden aangeroepen of het apparaat wordt gesloten.

Stabilisatie

Wanneer u apparaten opstart met behulp van de synchronisatiefunctie voor meerdere apparaten, wordt het ten zeerste aanbevolen om dit te doen met behulp van een instelling voor vaste blootstelling. Met een handmatige belichtingsset kan het tot acht opnamen van het apparaat duren voordat afbeeldingen en framerate zich stabiliseren. Met automatische belichting kan het tot 20 opnamen duren voordat afbeeldingen en framerate zich stabiliseren.

Een opname ophalen van het apparaat

Afbeeldingen worden op een gecorreleerde manier van het apparaat vastgelegd. Elke vastgelegde afbeelding bevat een diepteafbeelding, een IR-afbeelding, een kleurenafbeelding of een combinatie van afbeeldingen.

Standaard retourneert de API alleen een opname nadat deze alle aangevraagde installatiekopieën voor de streamingmodus heeft ontvangen. U kunt de API zo configureren dat gedeeltelijke opnamen met alleen diepte- of kleurenafbeeldingen worden geretourneerd zodra deze beschikbaar zijn door de synchronized_images_only parameter van de k4a_device_configuration_tte wissen.

// 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;
}

Zodra de API een opname heeft geretourneerd, moet u aanroepen k4a_capture_release() wanneer u het opnameobject hebt voltooid.

Een afbeelding ophalen uit de opname

Als u een vastgelegde afbeelding wilt ophalen, roept u de juiste functie aan voor elk afbeeldingstype. Een van de volgende:

U moet aanroepen k4a_image_release() op elke k4a_image_t ingang die door deze functies wordt geretourneerd zodra u klaar bent met het gebruik van de installatiekopieën.

Toegang tot installatiekopieënbuffers

k4a_image_t heeft veel toegangsfuncties om eigenschappen van de afbeelding op te halen.

Gebruik k4a_image_get_buffer om toegang te krijgen tot de geheugenbuffer van de installatiekopieën.

In het volgende voorbeeld ziet u hoe u toegang hebt tot een vastgelegde diepteafbeelding. Ditzelfde principe is van toepassing op andere afbeeldingstypen. Zorg er echter voor dat u de variabele voor het afbeeldingstype vervangt door het juiste afbeeldingstype, zoals IR of kleur.

// 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);

Volgende stappen

Nu weet u hoe u met uw Azure Kinect-apparaat de foto's van de camera's kunt vastleggen en coördineren tussen de kleur en diepte. U kunt ook het volgende doen: