颜色 space 到相机 space 变换矩阵

Color space to Camera space transformation matrix

我正在寻找转换矩阵来转换 color space to camera space

我知道可以使用 CoordinateMapper 进行点转换,但我没有使用 Kinect v2 官方 API。

如果有人可以分享转换矩阵,我真的很感激,它可以将颜色 space 转换为相机 space。

一如既往,非常感谢。

重要:原始kinect RGB图像有失真。先去掉。

简答

您搜索的"transformation matrix"叫做投影矩阵。

rgb.cx:959.5
rgb.cy:539.5
rgb.fx:1081.37
rgb.fy:1081.37

长答案

先了解一下Kinect是如何生成彩色图像的

X, Y, Z : 坐标 space 中给定点的坐标,其中 kinect 传感器被视为原点。又名相机 space。请注意,相机 space 是 3D 的。

u,v:颜色space中对应颜色像素的坐标。请注意,颜色 space 是二维的。

fx , fy : 焦距

cx, cy : principal points(可以把kinect RGB相机的principal points当作图像的中心)

(R|t) :外部相机矩阵。在kinect中,您可以将其视为(I|0),其中I是单位矩阵。

s :定标值。你可以将它设置为 1.

要获得 fx、fy、cx、cy 的最准确值,您需要使用棋盘在 kinect 中校准 rgb 相机。

以上fx,fy,cx,cy值是我自己对kinect的标定。这些值从一个 kinect 到另一个非常小的差异。

更多信息和实施

All Kinect camera matrix

Distort

Registration

我在 CUDA 中实现了注册过程,因为 CPU 的速度不足以实时处理那么多数据(每秒 1920 x 1080 x 30 矩阵计算)。