参数面板用于调整当前示例、算法参数和辅助操作;主区负责展示图像处理过程。
当用广角或普通镜头拍摄时,真实场景里的直线在照片边缘可能出现弯曲,物体的形状也会被拉长或压缩。如果不校正,后续基于直线或距离的测量就会出错。
常用办法是先建立畸变模型:径向畸变用多项式描述光线向边缘的弯曲,切向畸变描述镜头与传感器不平行带来的偏移。校正时根据目标像素反查它在原图中的采样位置,再把弯曲的结构重新映射回规则坐标。
拖动滑块改变畸变系数,观察图像中心与边缘的变形程度有什么不同;切换径向和切向参数,看看直线从弯曲恢复平直的过程主要来自哪一类畸变。
镜头畸变会把本应保持笔直的结构扭曲或弯曲。标定得到的畸变系数并不直接修改亮度,而是先计算每个输出像素应当回到原畸变图中的哪个坐标,再由remap完成采样。
畸变图是已经被镜头畸变扭曲后的观测图像。当前输出像素不会直接复制畸变图同坐标,而是先查询给出的源位置。
映射表通常由initUndistortRectifyMap预先计算完成。当前坐标代入一次径向畸变映射后,就能得到等价的采样位置。
校正图的当前像素位于 (60, 60),它显示的是畸变图源坐标采样后的结果(使用双线性插值),因此校正后直线会重新接近笔直。
畸变校正不是对像素值做卷积或增强,而是利用内参矩阵和畸变系数,为每个输出像素找到原畸变图中的采样位置。