OpenCV相机校准与三维场景重建技术详解
1. 图像畸变校正
在处理图像时,畸变是一个常见的问题。OpenCV使用多项式函数来校正图像畸变,将图像点移动到无畸变的位置。默认情况下,使用五个系数;也可以使用八个系数的模型。获取这些系数后,可以计算两个 cv::Mat 映射函数(一个用于x坐标,一个用于y坐标),以确定畸变图像上点的无畸变新位置。这一过程通过 cv::initUndistortRectifyMap 函数完成,然后使用 cv::remap 函数将输入图像的所有点重新映射到新图像。
需要注意的是,由于非线性变换,输入图像的一些像素可能会落在输出图像的边界之外。可以扩大输出图像的尺寸来补偿像素损失,但这样会导致输出图像中出现一些在输入图像中没有对应值的像素,这些像素将显示为黑色。
2. 相机校准的更多选项
2.1 已知内参的校准
当已知相机内参的良好估计值时,将其输入到 cv::calibrateCamera 函数中是有益的。这些值将作为优化过程的初始值。具体操作如下:
- 添加 cv::CALIB_USE_INTRINSIC_GUESS 标志。
- 将内参值输入到校准矩阵参数中。
此外,还可以为主要点设置固定值( cv::CALIB_FIX_PRINCIPAL_POINT ),通常可假设为中心像素;也可以为焦距 fx 和 fy 设置固定比例(
超级会员免费看
订阅专栏 解锁全文
11

被折叠的 条评论
为什么被折叠?



