cv::undistort函数
时间: 2024-02-06 09:03:18 浏览: 32
cv::undistort函数是OpenCV中用于对图像进行去畸变的函数之一。它可以根据相机的内参和畸变系数,将图像中的畸变效果去除,得到一个几何上更为准确的图像。
函数原型如下:
cv::undistort(InputArray src, OutputArray dst, InputArray cameraMatrix, InputArray distCoeffs, InputArray newCameraMatrix = noArray())
参数说明:
- src:输入图像。
- dst:输出去畸变后的图像。
- cameraMatrix:相机的内参矩阵,通常由cv::calibrateCamera函数得到。
- distCoeffs:相机的畸变系数,通常由cv::calibrateCamera函数得到。
- newCameraMatrix:新的相机内参矩阵,可选参数,默认为noArray()。如果不修改相机内参,可以使用原始相机内参。
使用该函数,只需提供输入图像、相机内参和畸变系数即可。函数会根据输入的参数对图像进行去畸变,得到输出图像。
相关问题
cv::undistort能不能得到去畸变后归一化平面点
cv::undistort函数只能得到去畸变后的二维图像平面特征,无法直接得到归一化平面点。但是,可以通过其他方式得到归一化平面点。一种方法是使用cv::initUndistortRectifyMap函数,该函数可以返回一个映射矩阵,将图像坐标映射到归一化平面点上。另一种方法是使用cv::undistortPoints函数,该函数可以将输入的二维图像平面特征坐标转换为归一化平面点坐标。需要注意的是,在使用这些函数时,需要提供相机的内参矩阵和畸变系数,这些参数可以通过相机标定得到。
cv::undistort最后得到的结果是图像平面特征还是归一化特征
cv::undistort函数的最后结果是图像平面特征。它将输入的图像坐标进行去畸变处理,使得输出的图像中特征点的位置更加准确和精确。这个函数的主要作用是消除图像中的镜头畸变,因此输出的结果是去除畸变的二维图像平面特征坐标。需要注意的是,如果需要进行三维重建等操作,还需要将二维图像平面特征转换为归一化特征。