Použití funkcí kalibrace Azure Kinect
Funkce kalibrace umožňují transformovat body mezi souřadnicovými systémy každého senzoru na zařízení Azure Kinect. Aplikace vyžadující převod celých imagí můžou využívat akcelerované operace dostupné ve funkcích transformace.
Načtení dat kalibrace
Je nutné načíst kalibraci zařízení, aby bylo možné provádět transformace souřadnicového systému. Data kalibrace jsou uložena v datovém typu k4a_calibration_t . Získá se ze zařízení prostřednictvím funkce k4a_device_get_calibration(). Údaje o kalibraci jsou nejen specifické pro každé zařízení, ale také pro provozní režim fotoaparátů. Proto k4a_device_get_calibration() vyžaduje depth_mode
jako vstup parametry a color_resolution
parametry.
Kompatibilita OpenCV
Parametry kalibrace jsou kompatibilní s OpenCV. Další informace o jednotlivých parametrech kalibrace fotoaparátu najdete také v dokumentaci k OpenCV. Podívejte se také na příklad kompatibility OpenCV sady SDK, která demonstruje převod mezi k4a_calibration_t typem a odpovídajícími datovými strukturami OpenCV.
Funkce transformace souřadnic
Následující obrázek znázorňuje různé souřadnicové systémy Azure Kinect a také funkce, které se mezi nimi převedou. Vynecháme 3D souřadnicové systémy gyroskopu a akcelerometru, aby byl obrázek jednoduchý.
Poznámka k zkreslení objektivu: 2D souřadnice vždy odkazují na zkreslený obrázek v sadě SDK. Příklad zrušení rozdělení sady SDK ukazuje zrušení rozdělení obrázku. Obecně platí, že 3D body nebudou nikdy ovlivněny zkreslením objektivu.
Převod mezi 3D souřadnicovými systémy
Funkce k4a_calibration_3d_to_3d() převede 3D bod zdrojového souřadnicového systému na 3D bod cílového souřadnicového systému pomocí extrinsické kalibrace kamery. Zdroj a cíl lze nastavit na libovolný ze čtyř 3D souřadnicových systémů, tj. barevné kamery, hloubkové kamery, gyroskopu nebo akcelerometru. Pokud jsou zdroj a cíl identické, vrátí se jako výstup nemodifikovaný vstupní 3D bod.
Převod mezi 2D a 3D souřadnicovými systémy
Funkce k4a_calibration_3d_to_2d() převede 3D bod zdrojového souřadnicového systému na souřadnici 2D pixelů cílové kamery. Tato funkce se často označuje jako projektová funkce. Zdroj je sice možné nastavit na některý ze čtyř 3D souřadnicových systémů, ale cíl musí být hloubková nebo barevná kamera. Pokud se zdroj a cíl liší, vstupní 3D bod se pomocí k4a_calibration_3d_to_3d() převede na 3D souřadnicový systém cílové kamery. Jakmile je 3D bod reprezentován v souřadnicovém systému cílové kamery, odpovídající souřadnice 2D pixelů se počítají pomocí vnitřní kalibrace cílové kamery. Pokud 3D bod vypadne z viditelné oblasti cílové kamery, je platná hodnota nastavená na 0.
Funkce k4a_calibration_2d_to_3d() převede souřadnici 2D pixelů zdrojové kamery na 3D bod souřadnic cílové kamery. Zdroj musí být barevný nebo hloubkový fotoaparát. Cíl lze nastavit na libovolný ze čtyř 3D souřadnicových systémů. Kromě souřadnice 2D pixelů je hodnota hloubky pixelu (v milimetrech) na obrázku zdrojové kamery vyžadována jako vstup funkce, jedním ze způsobů, jak odvodit hloubkovou hodnotu v geometrii barevné kamery, je použít funkci k4a_transformation_depth_image_to_color_camera(). Funkce vypočítá 3D paprsky vedoucí z centrálního bodu zdrojové kamery přes zadanou souřadnici pixelu pomocí vnitřní kalibrace zdrojové kamery. Hodnota hloubky se pak použije k nalezení přesného umístění 3D bodu na tomto paprsku. Tato operace se často označuje jako neprojektová funkce. Pokud se zdrojové a cílové kamery liší, funkce transformuje 3D bod na souřadnicový systém cíle prostřednictvím k4a_calibration_3d_to_3d().< Pokud souřadnice 2D pixelů spadne z viditelné oblasti zdrojové kamery, je platná hodnota nastavená na 0.
Převod mezi 2D souřadnicovými systémy
Funkce k4a_calibration_2d_to_2d() převede souřadnici 2D pixelů zdrojové kamery na souřadnici 2D pixelů cílové kamery. Zdroj a cíl musí být nastaveny na barvu nebo hloubkovou kameru. Funkce vyžaduje hloubkovou hodnotu pixelu (v milimetrech) na obrázku zdrojové kamery jako vstup, jedním ze způsobů, jak odvodit hodnotu hloubky v geometrii barevné kamery, je použít funkci k4a_transformation_depth_image_to_color_camera(). Volá k4a_calibration_2d_to_3d() pro převod na 3D bod zdrojové kamery. Potom volá k4a_calibration_3d_to_2d() pro převod na souřadnici 2D pixelů cílové kamery. Platná hodnota je nastavená na 0, pokud k4a_calibration_2d_to_3d() nebo k4a_calibration_3d_to_2d() vrátí neplatný výsledek.
Související ukázky
Další kroky
Teď už víte o kalibraci fotoaparátů, můžete se také naučit, jak
Můžete také zkontrolovat