我面临一个问题,在理解什么新的相机矩阵在cvUndistortpoints
.我们得到了一个摄像机矩阵的摄像机在立体校准本身和为什么我们必须通过一个新的摄像机矩阵的cvstereorectifier,我们得到的cvundistortpoints。输出cvUndistortPoints
后,新的相机矩阵与相机矩阵有何不同?
void cvUndistortPoints(const CvMat* src, CvMat* dst, const CvMat* cameraMatrix,
const CvMat* distCoeffs, const CvMat* R=NULL, const CvMat* P=NULL)
参考链接在这里:https://docs.opencv.org/3.4/da/d54/group__imgproc__transform.html#ga55c716492470bfe86b0ee9bf3a1f0f7e
2条答案
按热度按时间gmxoilav1#
答案在您提供的文档中的上一页。P由StereoRectify提供给您。
以下是它在opencvrefman.pdf中的undistorts下的说明,我的朋友,你也应该读一读:
newCameraMatrix -扭曲图像的相机矩阵。默认情况下,它与cameraMatrix相同,但您可以通过使用不同的矩阵来缩放和移动结果。
现在,我对这一点相当新,还没有机会使用StereoRectify函数,但我猜,你可能想要消除扭曲的图像看起来像什么不同的相机会看到。
des4xlb02#
在单目相机的情况下,newCameraMatrix通常等于cameraMatrix,或者它可以通过GetOptimalNewCameraMatrix来计算,以便更好地控制缩放。
查看http://opencv.willowgarage.com/documentation/cpp/camera_calibration_and_3d_reconstruction.html#cv-getoptimalnewcameramatrix