我知道可以使用CoordinateMapper完成点转换,但我没有使用 Kinect v2 官方 API。
如果有人可以分享转换矩阵,我真的很感激,它可以将色彩空间转换为相机空间。
一如既往,非常感谢。
我知道可以使用CoordinateMapper完成点转换,但我没有使用 Kinect v2 官方 API。
如果有人可以分享转换矩阵,我真的很感激,它可以将色彩空间转换为相机空间。
一如既往,非常感谢。
重要提示:原始 kinect RGB 图像有失真。先把它去掉。
简短的回答
您正在搜索的“变换矩阵”称为投影矩阵。
rgb.cx:959.5
rgb.cy:539.5
rgb.fx:1081.37
rgb.fy:1081.37
长答案
首先了解在 Kinect 中如何生成彩色图像。
X, Y, Z:坐标空间中给定点的坐标,其中 kinect 传感器被视为原点。又名相机空间。请注意,相机空间是 3D。
u, v:颜色空间中对应颜色像素的坐标。请注意,色彩空间是二维的。
fx , fy:焦距
cx, cy : 主点(可以将kinect RGB相机的主点作为图像的中心)
(R|t):外部相机矩阵。在 kinect 中,您可以将其视为(I|0),其中I是单位矩阵。
s:定标器值。您可以将其设置为 1。
要获得fx、fy、cx、cy的最准确值,您需要使用棋盘在 kinect 中校准 rgb 相机。
上面的fx 、 fy 、 cx 、 cy值是我自己对我的 kinect 的校准。这些值在非常小的范围内从一个 kinect 到另一个不同。
更多信息和实施
我在 CUDA 中实现了注册过程,因为 CPU 速度不够快,无法实时处理那么多数据(每秒 1920 x 1080 x 30 矩阵计算)。