本文內(nèi)容
● 獲取校準(zhǔn)數(shù)據(jù)
● 坐標(biāo)轉(zhuǎn)換函數(shù)
● 相關(guān)示例
● 后續(xù)步驟
本文完全復(fù)用Azure kinect 的校準(zhǔn)函數(shù),使用校準(zhǔn)函數(shù)可以轉(zhuǎn)換Femto Bolt 設(shè)備上每個傳感器的坐標(biāo)系之間的點。 需要轉(zhuǎn)換整個圖像的應(yīng)用程序可以利用提供的加速操作。
獲取校準(zhǔn)數(shù)據(jù)
需要獲取設(shè)備校準(zhǔn)數(shù)據(jù)才能執(zhí)行坐標(biāo)系轉(zhuǎn)換。 校準(zhǔn)數(shù)據(jù)存儲在 數(shù)據(jù)類型中。 該數(shù)據(jù)通過 函數(shù),從設(shè)備中獲取。 校準(zhǔn)數(shù)據(jù)針對不同設(shè)備,或同一個設(shè)備的不同工作模式都不一樣。 因此, 需要使用 depth_mode 和 color_resolution 參數(shù)作為輸入。
OpenCV 兼容性
校準(zhǔn)參數(shù)與 兼容。 有關(guān)各個相機(jī)校正參數(shù)的詳細(xì)信息,另請參閱 。 另請參閱 SDK 的 ,其中演示了 類型與相應(yīng) OpenCV 數(shù)據(jù)結(jié)構(gòu)之間的轉(zhuǎn)換。
坐標(biāo)轉(zhuǎn)換函數(shù)
下圖顯示了 Femto Bolt 的不同坐標(biāo)系,以及用于在這些坐標(biāo)系之間轉(zhuǎn)換的函數(shù)。 為了使插圖顯得簡潔,我們省略了陀螺儀和加速度傳感器的 3D 坐標(biāo)系。
有關(guān)鏡頭失真的備注:2D 坐標(biāo)始終引用 SDK 中失真的圖像。 SDK 的 演示了圖像失真矯正。 一般情況下,3D 點永遠(yuǎn)不會受到鏡頭失真的影響。
在 3D 坐標(biāo)系之間轉(zhuǎn)換
函數(shù) 使用相機(jī)的外部校準(zhǔn)將源坐標(biāo)系的 3D 點轉(zhuǎn)換為目標(biāo)坐標(biāo)系的 3D 點。 源和目標(biāo)可設(shè)置為四個 3D 坐標(biāo)系中的任何一個,即,彩色相機(jī)、深度相機(jī)、陀螺儀或加速度傳感器。 如果源和目標(biāo)相同,則返回未修改的輸入 3D 點作為輸出。
函數(shù) 將源坐標(biāo)系的 3D 點轉(zhuǎn)換為目標(biāo)相機(jī)的 2D 像素坐標(biāo)。 此函數(shù)通常稱為投影函數(shù)。 盡管源可以設(shè)置為四個 3D 坐標(biāo)系中的任何一個,但目標(biāo)必須是深度相機(jī)或彩色相機(jī)。 如果源和目標(biāo)不同,則會使用 將輸入的 3D 點轉(zhuǎn)換為目標(biāo)相機(jī)的 3D 坐標(biāo)系。 以目標(biāo)相機(jī)坐標(biāo)系表示 3D 點后,將使用目標(biāo)相機(jī)的內(nèi)部校準(zhǔn)計算相應(yīng)的 2D 像素坐標(biāo)。 如果 3D 點超出了目標(biāo)相機(jī)的可視區(qū)域,則有效值將設(shè)置為 0。
函數(shù) 將源相機(jī)的 2D 像素坐標(biāo)轉(zhuǎn)換為目標(biāo)相機(jī)坐標(biāo)系的 3D 點。 源必須是彩色相機(jī)或深度相機(jī)。 目標(biāo)可設(shè)置為四個 3D 坐標(biāo)系中的任何一個。 除了 2D 像素坐標(biāo)外,源相機(jī)圖像中像素的深度值(以毫米為單位)也需要作為函數(shù)的輸入,在彩色相機(jī)幾何中推導(dǎo)出深度值的一種方法是使用函數(shù) 。 該函數(shù)使用源相機(jī)的內(nèi)部校準(zhǔn)通過指定的像素坐標(biāo)計算源相機(jī)焦點引出的 3D 射線。 然后,使用深度值查找此射線的確切 3D 點位置。 此操作通常稱為取消投影函數(shù)。 如果源和目標(biāo)相機(jī)不同,該函數(shù)會通過 將 3D 點轉(zhuǎn)換為目標(biāo)的坐標(biāo)系。 如果 2D 像素坐標(biāo)超出了源相機(jī)的可視區(qū)域,則有效值將設(shè)置為 0。
函數(shù) 將源相機(jī)的 2D 像素坐標(biāo)轉(zhuǎn)換為目標(biāo)相機(jī)的 2D 像素坐標(biāo)。 源和目標(biāo)必須設(shè)置為彩色相機(jī)或深度相機(jī)。 該函數(shù)需要將源相機(jī)圖像中像素的深度值(以毫米為單位)作為輸入,在彩色相機(jī)幾何中推導(dǎo)出深度值的一種方法是使用函數(shù) 。 它將調(diào)用 轉(zhuǎn)換為源相機(jī)系統(tǒng)的 3D 點。 然后,它將調(diào)用 轉(zhuǎn)換為目標(biāo)相機(jī)圖像的 2D 像素坐標(biāo)。 如果 或 返回?zé)o效的結(jié)果,則有效值將設(shè)置為 0。
相關(guān)示例
●
●
●
了解相機(jī)校正后,接下來還可以了解。