我们使用后缀'_d'和'_u'的规定分辨率测试卡的识别失真和未失真图像/坐标相关的变量,并使用大写变量(如RHO)来识别测试和输出图像(将在下面隐含使用的属性)。
(1)将分辨率测试卡SFRPlus图像加载到软件中,并对其进行分析,以确定逆变换算系数(显示在Rescharts交互模块中)。(或者,将图像加载到Dot Pattern模块中并从中检索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()函数中直接使用这些查询(抽样)点。
使用相机拍摄的分辨率测试卡图在软件中的分析情况。其实在软件是会显示采样的代码信息的,但是对于一般不是非常了解代码的人或不了解摄像行业的人这些代码就像“天书”一样难以理解。我们这里只捡一些对于用户使用的信息给您介绍。
代码只是一个特定的实现,但是这些概念可以用任何编程语言来提取和应用
总结现在我们可以看到无失效果,特别注意上下的直线。还要注意的是,这个无失真图像的边缘周围有黑色区域 当然,原始图像中没有任何信息用于有效填写。