我正在寻找将color space转换为camera space的转换矩阵。
我知道点转换可以使用CoordinateMapper完成,但我没有使用Kinect v2官方API。
如果有人可以共享转换矩阵,我真的很感激,它可以将色彩空间转换为相机空间。
一如既往,非常感谢你。
答案 0 :(得分:1)
重要提示:原始kinect RGB图像有失真。先删除它。
简短回答
"转换矩阵"你正在搜索的是投影矩阵。
rgb.cx:959.5
rgb.cy:539.5
rgb.fx:1081.37
rgb.fy:1081.37
答案很长
首先了解如何在Kinect中生成彩色图像。
X,Y,Z :坐标空间中给定点的坐标,其中kinect传感器被视为原点。 AKA相机空间。请注意,相机空间为3D。
u,v :颜色空间中相应颜色像素的坐标。请注意,颜色空间是2D。
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到另一个kinect不同。
更多信息和实施
我在CUDA中实现了注册过程,因为CPU不够快,无法实时处理大量数据(每秒1920 x 1080 x 30矩阵计算)。