3

我在理解新相机矩阵的内容时遇到了问题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)
4

2 回答 2

3

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

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

于 2012-07-02T18:31:48.907 回答
1

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

以下是 opencvrefman.pdf 中 undistort 下的内容,我的朋友,您也应该阅读:

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

现在,我对此很陌生,还没有机会使用 StereoRectify 功能,但我猜你可能想要不扭曲图像以看起来像不同的相机会看到的那样。

于 2012-05-27T14:23:26.047 回答