在摄影测量和计算机视觉中都需要对含有畸变的影像进行改正操作,常用到的模型是对透视影像改正的Brown模型,在很多资料和软件中都可以看到该模型的畸变改正公式,比如PhotoScan和Context Capture中,在很多开源库中也有该畸变的改正函数,比如openCV和openMVG。虽然可以通过简单的函数调用便可以实现对影像的畸变改正,但是原理部分总会觉得有点不踏实,本文用于梳理Brown模型畸变改正的流程。
1、畸变的正向过程
在书中和软件说明书中为了方便读者理解畸变的过程,常常表示的是物体透视成像后畸变生成的过程,即从物方三维点坐标到图像点。三维点(X,Y,Z)通过透视成像得到像点坐标(x,y),由于镜头存在畸变,所以会出现像点坐标(x,y)与图像坐标(u,v)不一致的情况,这时就需要进行畸变变换才能得到真实的图像坐标,(u,v)表示的是发生畸变的真实的图像坐标。这样描述虽然容易理解畸变发生的过程,但是不利于畸变改正过程的理解,畸变改正的过程也不会涉及到物方三维点。
x = X / Z
y = Y / Z
r = x*x + y*y;
x1 &#