C++ 在OpenCV中使用旋转和平移矩阵

C++ 在OpenCV中使用旋转和平移矩阵,c++,opencv,rotation,translation,camera-calibration,C++,Opencv,Rotation,Translation,Camera Calibration,我要做的是将右摄像头的图像叠加到左摄像头的图像上。要做到这一点,我认为必须对右摄像机相对于左摄像机的旋转和平移矩阵进行微调。然后,我会将平移和旋转矩阵应用到右侧相机上的图像 假设这是正确的方法,我将从cvStereoCalibrate()中获得旋转和平移矩阵,但是我如何使用这些矩阵来获得“mapx”和“mapy”,以便我可以将其用于右图上的cvRemap() 这类似于从CVCalibleCamera2()中获取内部和失真,然后使用CVInitUnderOrtMap()获取mapx和mapy,最后

我要做的是将右摄像头的图像叠加到左摄像头的图像上。要做到这一点,我认为必须对右摄像机相对于左摄像机的旋转和平移矩阵进行微调。然后,我会将平移和旋转矩阵应用到右侧相机上的图像

假设这是正确的方法,我将从cvStereoCalibrate()中获得旋转和平移矩阵,但是我如何使用这些矩阵来获得“mapx”和“mapy”,以便我可以将其用于右图上的cvRemap()

这类似于从CVCalibleCamera2()中获取内部和失真,然后使用CVInitUnderOrtMap()获取mapx和mapy,最后使用cvRemap()获取未失真图像

旋转和平移是否有一个等价的CVinitUnderTortMap()

我不需要让图像看起来像是由两个行对齐的相机拍摄的。我想为Microsoft Kinect校准它,这样我就可以将深度流中的点匹配到视频流中

谢谢,
Tyro

您尝试执行的操作称为图像校正

在一个螺壳中,你需要找到两个摄像机之间的基本矩阵,然后计算校正同音图,将图像投影到同一平面上


有关更详细的概述,请参阅。

您尝试执行的操作称为图像校正

在一个螺壳中,你需要找到两个摄像机之间的基本矩阵,然后计算校正同音图,将图像投影到同一平面上


有关更详细的概述,请参见。

我不需要进行立体声校正。我不需要让图像看起来像是由两个行对齐的相机拍摄的。我想为Microsoft Kinect校准它,以便将深度流与视频流中的点进行匹配。我认为您的问题非常不清楚。当立体图像被校正时,视差估计是一维搜索。即使使用非常基本的视差搜索,您也应该能够将大量像素匹配到深度。来自Kinect的“深度流”是差异,对吗?是的,来自Kinect的深度流是差异,但流有一点偏移。如果你重叠RGB和深度帧,它们就不会重叠。我不需要做立体校正。我不需要让图像看起来像是由两个行对齐的相机拍摄的。我想为Microsoft Kinect校准它,以便将深度流与视频流中的点进行匹配。我认为您的问题非常不清楚。当立体图像被校正时,视差估计是一维搜索。即使使用非常基本的视差搜索,您也应该能够将大量像素匹配到深度。来自Kinect的“深度流”是差异,对吗?是的,来自Kinect的深度流是差异,但流有一点偏移。如果您重叠RGB和深度帧,它们将不会重叠。这可能也会引起您的兴趣。。。朱利安,这也会让你感兴趣。。。朱利安,