我正在编写镜头校正代码,该过程应该做几件事:
- 逆鱼眼投影得到直线图像
- 桶形/枕形校正
- 渐晕校正
- 横向色差校正
问题是 - 以什么顺序应用这些步骤?
图像应该先“去鱼”还是色差、渐晕等影响已经形成的鱼眼图像?
我不熟悉光学,所以只要使用正确的模型/参数,任何排序都可以 - 但我想在这种情况下寻求最简单的解决方案 - 例如,如果色差在直线图像中最容易校正,那么 de-钓鱼应该先行。
我正在编写镜头校正代码,该过程应该做几件事:
问题是 - 以什么顺序应用这些步骤?
图像应该先“去鱼”还是色差、渐晕等影响已经形成的鱼眼图像?
我不熟悉光学,所以只要使用正确的模型/参数,任何排序都可以 - 但我想在这种情况下寻求最简单的解决方案 - 例如,如果色差在直线图像中最容易校正,那么 de-钓鱼应该先行。
看来我在Panotools Wiki上找到了答案:
与直线镜头不同,鱼眼镜头不遵循切平面几何形状,而是具有旨在实现宽视场的内置畸变。径向镜头畸变参数的使用方式与直线镜头和鱼眼镜头的使用方式相同,但绝不应使用它们来尝试将鱼眼重新映射到直线图像。这是通过选择正确的源和目标投影来完成的。鱼眼几何遵循一个快速变化的三角函数,很难用三次多项式逼近。
对于鱼眼,镜头校正参数会校正真实镜头与理想鱼眼几何形状之间的偏差。
最后一句话表明进行镜头校正是为了获得适当的几何形状。因此,在完成镜头校正后重新映射鱼眼。
查看 Hugin 的Fulla工具源代码,它似乎按以下顺序执行更正: