好几次使用undistortPoints都碰到些障碍,把几个问题记录一下,我都是单目相机用
void cv::undistortPoints(InputArray src,
OutputArray dst,
InputArray cameraMatrix,
InputArray distCoeffs,
InputArray R = noArray(),
InputArray P = noArray() )
Python:
dst=cv.undistortPoints(src, cameraMatrix, distCoeffs[, dst[, R[, P]]])
dst=cv.undistortPointsIter(src, cameraMatrix, distCoeffs, R, P, criteria[, dst]
用处:根据相机参数和观测到点坐标位置计算实际坐标位置
参数说明:
注意问题
1. 观测点的shape,即src的shape是1xNx2或Nx1x2;
2. R参数是用在双目里的,单目里置为空矩阵;
3. P矩阵值为空时,得到的结果的点坐标是相机的归一化坐标 ( x , y ) (x, y) (x,y),这时候数值就会明显很小;设置相机内参会进行以下计算,
u ′ =