运用相机拍摄的分辨率测试卡图在软件中剖析相机的失真。其真实软件是会显现采样的代码信息的,但是关于普通不是十分理解代码的人或不理解摄像行业的人这些代码就像“天书”一样难以了解。我们这里只捡一些关于用户运用的信息给您引见。
代码只是一个特定的完成,但是这些概念能够用任何编程言语来提取和应用。留意下面,我们运用后缀'_d'和'_u'的规则分辨率测试卡的辨认失真和未失真图像/坐标相关的变量,并运用大写变量(如RHO)来辨认测试和输出图像(将在下面隐含运用的属性)。
(1)将分辨率测试卡SFRPlus图像加载到软件中,并对其停止剖析,以肯定逆变换算系数(显现在Rescharts交互模块中)。(或者,将图像加载到DotPattern模块中并从中检索LGD系数,并将其转换为逆变换系数,然后跟随其他步骤)。将它们加载到MATLAB中。
(2)相关于分辨率测试卡图像的中心,定义该察看(失真)图像的每个像素位置的空间坐标。例如,由于该测试图像是4288×2872像素,所以左上像素坐标为(-2143.5,-1435.5)。
(3)将这些坐标转换为极坐标,因而我们只能支配径向重量(这里称为RHO)。我们还对径向坐标停止归一化,然后缩放,使得未失真图像的中心到角间隔最终将归一化为1。
(4)留意:作为一个奇妙的点,THETA和RHO_d对变量实践上定义了空间坐标两种方式:显性和隐性。它们的值定义显式坐标,即(THETA(1,1),RHO(1,1))定义分辨率测试卡图像的左上角像素的角和径向坐标。它们也经过二维阵列隐含地定义一组坐标,这组坐标具有自然的次第和构造。即便我们更改这两个数组的(1,1)条目的值,它们依然是每个数组的左上角条目。该点的显式坐标曾经改动,但隐含的坐标坚持不变。
我们如今将丈量的失真应用于径向坐标,使得显式径向间隔与察看图像中该点的径向间隔相匹配。如上所述,察看到的图像中的失真位置如今经过阵列中的隐含位置与图像阵列中的未失真位置相关联。我们运用隐式数组元素位置作为未失真图像的真实坐标,并将显式数组值作为映射到失真图像中的点以从中抽出样本。
留意,我们实践上没有正向变换多项式,有只是软件返回的逆多项式。这能够经过拟合一个新的(反向)多项式来反转。
(5)我们如今有X_d,Y_d数组,其隐式坐标是未失真图像的坐标,其显式值表示与它们相关联的察看图像中的采样点。我们能够直接在interp2()函数中直接运用这些查询(抽样)点。
总结
如今我们能够看到无失效果,特别留意上下的直线。还要留意的是,这个无失真图像的边缘四周有黑色区域-当然,原始图像中没有任何信息用于有效填写。
当然,除了测试图形图之外,我们如今还能够对场景停止静音。如今我们曾经运用分辨率测试卡和I测试软件来表征摄像机系统自身形成的失真,我们能够消弭任何其他图像所需的失真。