kinect one校准/使用opencv覆盖rgb和深度图像

kinect one校准/使用opencv覆盖rgb和深度图像,opencv,kinect,rgb,depth,calibration,Opencv,Kinect,Rgb,Depth,Calibration,我正在做一个需要使用Kinect One的项目,我对这种传感器没有太多经验(无论是新的还是旧的Kinect)。因此,我开始使用它,并成功地使用Kinect SDK v2.0和opencv获取图像。现在我想做的是叠加来自rgb传感器和ir/深度传感器的两个视图,以创建rgb-d图像。Kinect SDK为此提供了一个名为CoordinateMapper的类,但没有提供足够的结果(速度和质量),而且我还面临@api55描述的问题。因此,我想尝试和手动这样做,加上学习的原因。彩色摄像机具有全高清分辨率

我正在做一个需要使用Kinect One的项目,我对这种传感器没有太多经验(无论是新的还是旧的Kinect)。因此,我开始使用它,并成功地使用Kinect SDK v2.0和opencv获取图像。现在我想做的是叠加来自rgb传感器和ir/深度传感器的两个视图,以创建rgb-d图像。Kinect SDK为此提供了一个名为CoordinateMapper的类,但没有提供足够的结果(速度和质量),而且我还面临@api55描述的问题。因此,我想尝试和手动这样做,加上学习的原因。彩色摄像机具有全高清分辨率(1920x1080像素),深度/红外图像分别为512x424像素。另外,两个传感器具有不同的纵横比。四处搜索,我发现正确的方法是首先校准两个传感器,然后在两个视图之间应用任何映射

我将使用opencv进行校准和映射程序。对于校准,我注意到,这里的人和一般人都建议,如果我首先使用
calibrate()
函数单独校准两个传感器,然后使用提取的cameraMatrix/固有和畸变系数/distcoefs值对
stereoCalibrate()进行校准,效果会更好
函数,以获得稍后映射所需的旋转(R)和平移(T)矩阵以及其他一些矩阵,例如R1、R2、P1、P2、Q等。使用非对称圆网格模式,我设法在初始分辨率和纵横比下分别校准每个传感器,获得rgb和ir传感器的重投影误差,均方根分别为0.3和0.1。将提取的值通过
CV\u CALIB\u USE\u INTRINSIC\u GUESS
CV\u CALIB\u FIX\u INTRINSIC
传递给
stereoCalibrate()
,我设法获得了具有重投影误差的R和T矩阵,rms=~0.4,这似乎也很好


问题1

但是在继续之前,我有一个问题,
stereoCalibrate()
有一个关于图像大小的参数,我使用了红外摄像机的大小,因为稍后我想使用此分辨率来映射两个视图。另一方面,我在某个地方读到,它不起任何作用,因为它只对内部摄像机校准中的初始化有用(根据openCV文档),如果使用参数
CALIB\u FIX\u intrinsic
调用
stereoCalibrate()
,则不会使用它,对吗?此外,你认为我应该将高分辨率相机的大小调整为较小相机的大小,因为我稍后将使用后者进行贴图。我想我也需要应用一些裁剪,因为不同的纵横比,对吗?或者是没有必要


在没有调整大小和裁剪的情况下继续操作。最后,我设法从
stereorective()
函数中获得了不失真和校正所需的所有必要信息。因此,我成功地获得了cameraMatrix,distcoefs,R,T,R1,R2,P1,P2,Q矩阵。现在尝试取消扭曲/纠正并以初始尺寸重新映射两个视图,我获得了以下结果:

这似乎很好,除了第一张图片周围的戒指,我不知道它是什么,如果有人能解释我,我将不胜感激。我的猜测是,最有可能的结果是错误的校准?另外,在
initundistorticrectitymap()
中,我使用的是大分辨率传感器的大小,否则我会得到完全错误的结果,如果有人能够解释,我也不理解这一点

现在,如果在任何校准之前调整大分辨率图像的大小(不应用裁剪),我会得到更好的结果:

当然,正如你所看到的,由于纵横比的原因,图像是完全不同的


问题2

那么,从问题1继续,正确的方法是什么,我可以使用图像的初始大小,还是应该调整它们的大小,我应该应用裁剪吗?我在程序中做错了什么



问题3

考虑到我将在校准/不失真/校正后获得这两个视图,我如何覆盖它们?我有rgb和深度图像,来自两个传感器和R,T,R1,R2,P1,P2,Q矩阵的摄像和距离系数。我读到我可以使用cv::projectPoints,但我找不到一个例子。如果有人能给我一些提示,我将不胜感激

提前谢谢

p、 我可以提供一些代码,如果它是必要的,这是一个有点混乱的时刻,但仍然如果它帮助我没有问题