什么是cvundistortpoints中的新相机矩阵。

时间:2012-05-27 11:28:16

标签: opencv camera-calibration stereo-3d

我在理解cvUndistortpoints中的新相机矩阵时遇到了问题。我们在立体声校准中获得了相机的相机,以及为什么我们必须在cvstereorectify中传递一个新的相机矩阵,这是我们从cvundistortpoints获得的。 cvUndistortPoints输出后,相机matix如何与相机矩阵不同...

            void cvUndistortPoints(const CvMat* src, CvMat* dst, const CvMat* 
       cameraMatrix,   const CvMat* distCoeffs, const CvMat* R=NULL, const 
        CvMat* P=NULL)

,参考链接在这里 http://opencv.willowgarage.com/documentation/c/calib3d_camera_calibration_and_3d_reconstruction.html?highlight=undistortpoints#cvUndistortPoints

2 个答案:

答案 0 :(得分:3)

在单目相机的情况下,newCameraMatrix通常等于cameraMatrix,或者可以通过GetOptimalNewCameraMatrix计算,以便更好地控制缩放。

查看http://opencv.willowgarage.com/documentation/cpp/camera_calibration_and_3d_reconstruction.html#cv-getoptimalnewcameramatrix

答案 1 :(得分:1)

答案是您提供的文档中的一页。 P由StereoRectify提供给你。

以下是opencvrefman.pdf中关于unistort的说法,我的朋友,你也应该阅读它:

  

newCameraMatrix - 扭曲图像的相机矩阵。默认情况下,它   与cameraMatrix相同,但您可以另外缩放和移位   结果使用不同的矩阵。

现在,我对此很陌生,并且还没有机会使用StereoRectify功能,但我猜你可能想要将图像无效,看起来像是不同的相机会看到的。