Poznámka
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Tato stránka obsahuje podrobnosti o tom, jak načíst obrázky z Azure Kinectu. Článek ukazuje, jak zachytit a přistupovat k obrázkům koordinovaným mezi barvou a hloubkou zařízení. Pokud chcete získat přístup k imagím, musíte nejprve otevřít a nakonfigurovat zařízení a pak můžete zachytit image. Než nakonfigurujete a zachytíte image, musíte Najít a otevřítzařízení .
Můžete se také podívat na příklad streamování sady SDK, který ukazuje, jak používat funkce v tomto článku.
Probíráme následující funkce:
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()
Konfigurace a spuštění zařízení
Dva kamery dostupné na vašem zařízení Kinect podporují více režimů, rozlišení a výstupní formáty. Úplný seznam najdete ve specifikacích hardwaru sady Azure Kinect Development Kit.
Konfigurace streamování se nastavuje pomocí hodnot ve struktuře 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;
}
Po spuštění fotoaparátů budou dál zaznamenávat data, dokud se k4a_device_stop_cameras()
nezavolá nebo se zařízení zavře.
Stabilizace
Při spouštění zařízení pomocí funkce synchronizace více zařízení se důrazně doporučuje použít pevné nastavení expozice. Při nastavení ruční expozice může trvat až osm snímků pořízených zařízením, než se stabilizují snímky a snímková rychlost. Při automatické expozici může trvat až 20 snímků, než se snímky a frekvence snímání stabilizují.
Získání záznamu ze zařízení
Obrázky se ze zařízení zaznamenávají korelovaným způsobem. Každý zachycený obrázek obsahuje podrobný obrázek, obrázek PROSTŘEDÍ IR, barevný obrázek nebo kombinaci obrázků.
Ve výchozím nastavení rozhraní API vrátí záznam až po přijetí všech požadovaných obrazů pro režim streamování. Rozhraní API můžete nakonfigurovat tak, aby jakmile budou obrázky k dispozici, vracelo částečné snímky obsahující pouze hloubkové nebo barevné obrázky tím, že vymažete parametr synchronized_images_only
z k4a_device_configuration_t
.
// 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;
}
Jakmile rozhraní API úspěšně vrátí zachycení, musíte zavolat k4a_capture_release()
, jakmile dokončíte používání objektu zachycení.
Získání obrázku z zachycení
Pokud chcete načíst zachycený obrázek, zavolejte příslušnou funkci pro každý typ obrázku. Jedna z těchto možností:
Po skončení používání obrazu je nutné zavolat funkci k4a_image_release()
na libovolném handle k4a_image_t
vráceném těmito funkcemi.
Přístup k vyrovnávacím pamětím obrázků
k4a_image_t
má mnoho přístupových funkcí pro přístup k vlastnostem obrázku.
Pro přístup k vyrovnávací paměti image použijte k4a_image_get_buffer.
Následující příklad ukazuje, jak získat přístup k zachycené hloubkové imagi. Stejný princip se vztahuje na jiné typy imagí. Ujistěte se ale, že proměnnou typu obrázku nahradíte správným typem obrázku, například ir nebo barvou.
// 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);
Další kroky
Teď víte, jak zachytit a koordinovat snímky fotoaparátů mezi barvou a hloubkou pomocí zařízení Azure Kinect. Můžete také: