我在理解cvUndistortpoints
中的新相机矩阵时遇到问题。我们获得了立体校准相机本身的相机矩阵,以及为什么我们必须在cvstereorectify中传递一个新的相机矩阵,该矩阵是从cvundistortpoints获得的。 cvUndistortPoints
输出后,新的相机矩阵与相机矩阵有何不同?
void cvUndistortPoints(const CvMat* src, CvMat* dst, const CvMat* cameraMatrix,
const CvMat* distCoeffs, const CvMat* R=NULL, const CvMat* P=NULL)
答案是您提供的文档中的一页。 P由StereoRectify给您。
这是opencvrefman.pdf中undistort下它的内容,我的朋友,您也应该阅读它:
newCameraMatrix –扭曲图像的相机矩阵。默认情况下与cameraMatrix相同,但您可以额外缩放和移动通过使用其他矩阵得出结果。
现在,我对此还很陌生,还没有机会使用StereoRectify函数,但是我猜想您可能想使图像变形以使其看起来像其他相机会看到的图像。
在单眼相机的情况下,newCameraMatrix通常等于cameraMatrix,或者可以通过GetOptimalNewCameraMatrix计算得出,以便更好地控制缩放。