图像质量评估(5) -- 畸变(Distortion)

        当图像中原本应该是直线的地方看起来发生了不自然的变形或扭曲时,我们称为图像畸变。有三种类型的镜头畸变:桶形畸变(后文使用英文barrel),枕形畸变(后文使用pincushion)和胡子畸变(后文使用英文wave或mustache,这种畸变里包含了桶形畸变和枕形畸变)。有一个重要的点需要注意,根据透镜的类型以及透镜是否能够从相机中移除等条件不同,畸变会有不同的表现。

        总的来说,旋转对称光学系统功能上会产生和物体几何相似的图形。但也有少数特殊的系统是例外,例如鱼眼镜头,这种镜头几何是故意设计为何物体的几何不一致的。理想情况下,光学系统的功能根据透视投影的几何形状来实现。但实际结果和理想状态的图像几何会有偏差,这个偏差叫做畸变。

桶形(barrel)畸变例子

枕形(pinchushion)畸变例子

如何测量畸变

        ISO90391标准定义了一些方法来测量和相机分离开来的镜头的畸变。但有些情况我们没有办法将镜头和相机分离开(比如手机中的摄像头),因此ISO 90391里描述的非常耗时的方法不够。因此,ISO 17850被用来测量相机镜头组合到一起的畸变。

TV 畸变方法(ISO 9039)

        最早的使用相机镜头组合的畸变测量方法是TV畸变方法,这个方法用来分析TV摄像机系统。此方法需要一个测试图卡,图卡带有规则的几何结构的方格,比如下图的TE260和TE251这两种图表常常用来测量畸变。

图像质量评估(5) -- 畸变(Distortion)_第1张图片

 TE260点图

图像质量评估(5) -- 畸变(Distortion)_第2张图片

TE261格子图 

        TV畸变方法本质上是一个从图像中心到角落展现出稳定增长的畸变特性的系统。原始图像中直线的弯曲在图像的上边缘(top edge)处被量化。沿着图像的高度方向弯曲的比率乘以100是图像高度畸变的百分比。这个方法和EBU Tech 3249里描述的过程是兼容的。

 D=\frac{\Delta H}{H} * 100

图像质量评估(5) -- 畸变(Distortion)_第3张图片

图片高度畸变(桶形) 

图像质量评估(5) -- 畸变(Distortion)_第4张图片

 图片高度畸变(枕形)

直线几何畸变方法(Line geometric distortion method)(ISO 17850)

        一些特定的镜头系统(特别是在移动设备中的小型系统)会在最大的图像高度上进行畸变校正。这些系统在距离光学中心较近处展现出最高的畸变级别。最终产生的畸变类型通常是barrel和pincushion畸变的混合,用术语wave distortion来描述。

图像质量评估(5) -- 畸变(Distortion)_第5张图片

直线几何畸变 

       直线几何畸变测试的图卡是直线网格形式的图,如下所示

图像质量评估(5) -- 畸变(Distortion)_第6张图片

测试图卡:line grid pattern  

        对于带wave畸变的系统,测试的图像高度方向的畸变值能够是0或接近0,即使此时图像中可见的畸变非常厉害。

        我们将直线几何畸变方法划分为三个不同的方法来测量这些系统的畸变,在ISO17850标准中所指定。

        1)水平直线畸变

              记Ai为不同图片高度(这里高度的意思是line grid pattern图的相关线对(line pair)的垂直距离)的line grid pattern输出图像的最大高度值,Bi为最小值。输出图像的帧短边的像素个数记为V。

                当垂直线Ai距离图像中心的垂直线比Bi更近时,使用方程:

                D_{hi} = \frac{(Bi - Ai)}{2V} * 100%

                否则,使用方程[3]:

                D_{hi} = \frac{Ai - Bi}{2V} * 100%

                i表示每种图片高度的下标

        2)垂直直线畸变

                记\alpha _i为不同图片宽度(这里宽度的意思是line grid pattern图的相关线对(line pair)的水平距离)的line grid pattern输出图像的最大宽度值,\beta _i为最小值。输出图像的帧短边的像素个数记为V。

                当水平线\alpha _i距离图像中心的水平线比 \beta _i更近时,使用方程:

               D_{vi} = \frac{\beta_i - \alpha_i}{2V} * 100%

                否则,使用方程[5]:

                D_{vi} = \frac{\alpha_i - \beta_i}{2V} * 100%

                 i表示每种图片宽度的下标

        3)总的直线畸变

                每种图像大小中,直线几何畸变D_{line}i被定义为方程:

                |D_{line}i| = \sqrt{D_{hi}^2 + D_{vi}^2} %

                总的直线几何畸变Dline的值,被定义为绝对值最大的D_{line}i

局部几何畸变方法(Local geometric distortion method)(ISO 17850)

        局部几何畸变值D_{local}(%)定义为如下方程:

        D_{local} = \frac{(h' - h_0')}{h_0'} * 100%

        h'表示实际的点到图像中心的距离

        h_0'表示理想的点到图像中心的距离

        图像质量评估(5) -- 畸变(Distortion)_第7张图片

        这里有一个假设是图像的中心是没有畸变的。因此h_0'能够从图像中心处的部分点的位置估算出来。每个检测点提供出一个局部几何畸变值D_{local}.如果畸变是旋转完全对称的,那么D_{local}会被描绘成一个单值函数,这个函数的变量是到图像中心的距离。

        实际算法概述

        1. 提取出点

        2. 精确确定出点的中心位置

        3. 对比这些点的实际位置和点的理想位置

        4. 计算平均网格间距向量

        5. 图像的重心被认为是[0,0]网格位置,所有理想的网格位置都通过一个位置值为整数的网格计算而来。

        6. 一个网格位置的几何畸变值是实际网格位置的径向距离h'和理想网格位置的径向距离h_0'之差,除以h_0'。如果h'<h_0',畸变值为负,否则为正。

        7. 上面的几何畸变值每个合法的网格位置都会计算,这样就提供了镜头畸变的一个2D数据集。

        8. 几何畸变被绘制为针对每个网格位置的,到图像中心的实际径向距离(h')的函数。

参考资料

https://www.doc88.com/p-3877892515748.html

你可能感兴趣的:(ISP,图像处理,isp,其他,计算机视觉)