Opencv 什么是新的摄像机矩阵。?
我在理解Opencv 什么是新的摄像机矩阵。?,opencv,camera-calibration,stereo-3d,Opencv,Camera Calibration,Stereo 3d,我在理解cvUndistortpoints中的新相机矩阵时遇到了一个问题。我们在立体校准中得到摄像机的摄像机矩阵,以及为什么我们必须在CVStereoRective中传递一个新的cameramatrix,这是我们从CVUndersortPoints获得的。在输出cvUndistortPoints后,新的摄像机矩阵与摄像机矩阵有什么不同 void cvUndistortPoints(const CvMat* src, CvMat* dst, const CvMat* cameraMatrix,
cvUndistortpoints
中的新相机矩阵时遇到了一个问题。我们在立体校准中得到摄像机的摄像机矩阵,以及为什么我们必须在CVStereoRective中传递一个新的cameramatrix,这是我们从CVUndersortPoints获得的。在输出cvUndistortPoints
后,新的摄像机矩阵与摄像机矩阵有什么不同
void cvUndistortPoints(const CvMat* src, CvMat* dst, const CvMat* cameraMatrix,
const CvMat* distCoeffs, const CvMat* R=NULL, const CvMat* P=NULL)
答案在您提供的文档中向上一页。P是用立体定向仪给你的 下面是opencvrefman.pdf中的undistort下的内容,我的朋友,你也应该阅读: newCameraMatrix–扭曲图像的相机矩阵。默认情况下 与cameraMatrix相同,但您可以另外缩放和移动 结果是使用不同的矩阵
现在,我对这一点非常陌生,还没有机会使用StereoRective功能,但我猜您可能希望不失真图像,使其看起来像其他相机所看到的一样。对于单目相机,newCameraMatrix通常等于cameraMatrix,或者可以通过GetOptimizeNewCameraMatrix计算,以更好地控制缩放
检查一下实际上,新的摄像机矩阵p是一个-输入-。CVunistortPoints没有创建它。如果您能澄清我,为什么我们要将新的相机矩阵转换为CVunistortPoints,我将非常高兴。传递这个新矩阵的具体用途是什么?文档中令人困惑的部分是短语“畸变图像的摄像机矩阵”。它不是畸变图像的矩阵,而是假设的“未畸变”图像的矩阵,即输出图像。摄像机矩阵有4个重要区域,2个焦距(x和y),以及2个位移——“主点”的坐标。前两个允许缩放,后一个可以移动视点。我还尝试一次性校正图像,将inNewCameraMatrix乘以摄像机校准外部参数的旋转矩阵的倒数(精确沿z轴查看)。有没有可能发布相关代码?链接已断开。