一种图像传感器中镜头阴影校正方法与流程

文档序号:22622735发布日期:2020-10-23 19:29阅读:202来源:国知局
一种图像传感器中镜头阴影校正方法与流程

本发明涉及图像处理领域,具体涉及一种图像传感器中镜头阴影校正方法。



背景技术:

通常在使用ccd/cmos图像传感器对采集图像进行处理时,由于镜头的光学特性,导致采集到的图像出现亮度和色彩不均匀的现象。其中亮度不均匀主要是因为入射光通过镜头时,光线在镜头边缘处的反射、折射作用较强,从而使透过镜头的光线强度从中心到边角以光晕的形式逐渐衰减,表现在图像上为中心亮、边缘暗的现象;色彩不均匀主要是因为入射光中不同波长的光的折射率不同,从而使入射光中不同波长的光落到感光器件上的不同位置,表现在图像上为色彩的偏差,并且越偏离图像中心,色彩偏差越严重。

镜头阴影效应的存在会在图像信号处理流程(isppipeline)中产生不利的影响,主要体现在:1)、图像亮度和色彩出现局部偏差,导致图像质量下降;2)、图像白平衡调整不准确,不利于其他算法调试。因此消除镜头阴影是非常有必要的,这一过程叫做镜头阴影校正(lsc)。

为了解决上述镜头阴影效应,目前已有的算法分为两大类:一类是采用网格划分的方式进行阴影校正,这种方式虽然有效,但是因为图像亮度是以光晕的形式逐渐衰减的,所以当划分的网格正好包括两个亮度过渡区域时,会出现阴影校正不准确的情况。另一类是求当前像素点到亮度中心的距离,通过拟合阴影校正增益与距离的线性关系,达到阴影校正的目的,这种方式虽然简单,但是图像实际的亮度变化并不一定与距离的变化能够成拟合成线性关系,且其中复杂的数学逻辑不利于硬件的实现,因此也会出现阴影校正不准确的情况。



技术实现要素:

本发明的目的是提供一种图像传感器中镜头阴影校正方法,采用圆圈区域划分的方式进行镜头阴影校正,更符合图像亮度的衰减规律,并且整个校正过程计算量小,更利于硬件的实现。

为了实现上述目的,本发明采用如下技术方案:一种图像传感器中镜头阴影校正方法,包括如下步骤:

s01:图像传感器采集镜头阴影图像,获取镜头阴影图像的亮度中心;

s02:计算所述镜头阴影图像中亮度中心到图像四个角点之间的最大距离distmax;

s03:设置圆圈数目circlenums,并根据圆圈数目和最大距离求出圆圈划分步长step;其中,circlenums为大于0的整数;

s04:根据步长划分圆圈区域;统计每个圆圈区域的的阴影校正增益;

s05:计算待校正像素距离亮度中心的距离dist,并根据该距离与阴影校正增益对待校正像素进行校正;

s06:重复步骤s05直至完成整幅图像的镜头阴影校正。

进一步地,所述步骤s01中获取镜头阴影图像亮度中心的具体方法为:对所述镜头阴影图像的每一行求平均值,对所述镜头阴影图像的每一列求平均值,最大行平均值和最大列平均值对应的位置即为亮度中心。

进一步地,所述步骤s02中计算镜头阴影图像亮度中心到四个角点之间的欧式距离,并找出最大欧式距离值distmax。

进一步地,所述步长step=distmax/step。

进一步地,所述步骤s04中,当circlenums刚好被distmax整除时,每个圆圈区域增加的步长一致;当circlenums不能被distmax整除时,前circlenums-1个圆圈区域中增加的步长一致。

进一步地,所述步骤s04中第k个圆圈区域的阴影校正增益gain(k)=lightcenter/lightavg(k),其中,lightcenter表示亮度中心值,lightavg(k)表示第k个圆圈区域的亮度平均值,k为大于0小于等于circlenums的整数。

进一步地,所述步骤s05中采用线性插值法对待校正像素进行校正,具体校正方法为:

当0<dist≤step/2时,imageout(r,c)=imagein(r,c),其中dist为当前像素点到亮度中心的距离,imageout(r,c)为经过镜头阴影校正后的像素值,imagein(r,c)为输入图像像素值;

当[(2×k-3)×step]/2<dist≤[(2×k-1)×step]/2时,imageout(r,c)=imagein(r,c)×[leftdist×gain(k)+rightdist×gain(k-1)]/interdist;其中,leftdist=dist-[(2×k-3)×step]/2;rightdist=[(2×k-1)×step]/2-dist;interdist=rightdist-leftdist;k表示当前像素点所在的圆圈区域;

当[(2×circlenums-3)×step]/2<dist≤[(2×circlenums-1)×step+steplast]/2时,imageout(r,c)=imagein(r,c)×[leftdist×gain(circlenums)+rightdist×gain(circlenums-1)]/interdist;其中,leftdist=dist-[(2×circlenums-3)×step]/2;rightdist=[(2×circlenums-1)×step+steplast]/2-dist;interdist=rightdist-leftdist;k表示当前像素点所在的圆圈区域;steplast表示最后一个圆圈区域的步长;

当[(2×circlenums-1)×step+steplast]/2<dist≤distmax时,imageout(r,c)=imagein(r,c)×gain(circlenums)。

进一步地,所述镜头阴影图像分通道进行镜头阴影校正,每个通道的镜头阴影校正均采用步骤s01-s06方法进行校正。

进一步地,所述图像传感器采用拜耳阵列进行像素排布时,将镜头阴影图像分为gr通道、r通道、b通道和gb通道,每个通道的镜头阴影校正均采用步骤s01-s06方法进行校正。

本发明具有如下有益效果:本发明采用圆圈划分的方式进行镜头阴影校正,首先求出图像亮度中心的位置,进一步求出图像四个角点到亮度中心的距离并比较得到最大距离值,然后根据设置的圆圈数目,用最大距离值除以圆圈数目,划分出圆圈区域,进一步计算各个圆圈区域的阴影校正增益,最后将阴影校正增益乘以原像素值,得到阴影校正后的图像。这种圆圈划分的方式更符合图像亮度的衰减规律,并且整个过程中计算量小,更利于硬件的实现。

附图说明

附图1为本发明一种图像传感器中镜头阴影校正方法的流程图;

附图2为采集图像的行列中心位置;

附图3为图像划分圆圈区域的示意图;

附图4位线性插值法示意图;

附图5位经过实施例1方法校正之后的行列平均值。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚,下面结合附图对本发明的具体实施方式做进一步的详细说明。

如附图1所示,本发明提供的一种图像传感器中镜头阴影校正方法,包括如下步骤:

s01:图像传感器采集镜头阴影图像,获取镜头阴影图像的亮度中心。

具体的,如附图2所示,对镜头阴影图像的每一行求平均值,并将每一行的均值联合起来构成行平均值,求出行平均值中的最大值,并将其记为行方向的中心位置rowcenter。对镜头阴影图像的每一列求平均值,并将每一列的均值联合起来构成列均平均值,求出列平均值中的最大值,并将其记为列方向的中心位置colcenter;上述求出的行、列中心即为亮度中心(rowcenter,colcenter),即为图像的亮度中心。

s02:计算镜头阴影图像亮度中心到四个角点之间的距离,并找出最大距离值distmax;上述距离可以但不限于采用欧式距离表示,且下文所有的距离均采用相同类型的距离表示。

s03:设置圆圈数目circlenums,并根据圆圈数目和最大距离求出圆圈划分步长step;其中,circlenums为大于0的整数,step=distmax/step。

s04:根据步长划分圆圈区域dist;统计每个圆圈区域的的阴影校正增益。第k个圆圈区域的阴影校正增益gain(k)=lightcenter/lightavg(k),其中,lightcenter表示亮度中心值,lightavg(k)表示第k个圆圈区域的亮度平均值,k为大于0小于等于circlenums的整数。

进一步地,如附图3所示,根据上述步长划分圆圈区域,当circlenums刚好被distmax整除时,每个圆圈区域增加的步长一致,均为step;当circlenums不能被distmax整除时,前circlenums-1个圆圈区域中增加的步长一致,均为step,最后一个圆圈区域增加的步长steplast=distmax-circlenums-1)×step。

根据上述划分好的圆圈区域,可以判断任意像素位于哪个圆圈区域,具体判断方法为:计算当前像素点pix((r,c)的位置与亮度中心(rowcenter,colcenter)的距离dist,(k-1)×step<dist≤k×step,k∈[1,circlenums],此时的k代表当前圆圈区域的位置。

s05:计算待校正像素距离亮度中心的距离,并根据该距离与阴影校正增益对待校正像素进行校正。

如附图4所示,采用线性插值法对待校正像素进行校正,具体校正方法为:当0<dist≤step/2时,imageout(r,c)=imagein(r,c),其中dist为当前像素点到亮度中心的距离,imageout(r,c)为经过镜头阴影校正后的像素值,imagein(r,c)为输入图像像素值;

当[(2×k-3)×step]/2<dist≤[(2×k-1)×step]/2时,imageout(r,c)=imagein(r,c)×[leftdist×gain(k)+rightdist×gain(k-1)]/interdist;其中,leftdist=dist-[(2×k-3)×step]/2;rightdist=[(2×k-1)×step]/2-dist;interdist=rightdist-leftdist;k表示当前像素点所在的圆圈区域;

当[(2×circlenums-3)×step]/2<dist≤[(2×circlenums-1)×step+steplast]/2时,imageout(r,c)=imagein(r,c)×[leftdist×gain(circlenums)+rightdist×gain(circlenums-1)]/interdist;其中,leftdist=dist-[(2×circlenums-3)×step]/2;rightdist=[(2×circlenums-1)×step+steplast]/2-dist;interdist=rightdist-leftdist;k表示当前像素点所在的圆圈区域;steplast表示最后一个圆圈区域的步长;

当[(2×circlenums-1)×step+steplast]/2<dist≤distmax时,imageout(r,c)=imagein(r,c)×gain(circlenums)。

值得说明的是,本发明中采集到的镜头阴影图像为ccd/cmos图像传感器采集到的图像,图像传感器颜色采集通常采用彩色滤镜。当需要彩色信息时,通常使用彩色滤镜过滤不需要的颜色,留下目标颜色;当需要采集单色图像时,不设置彩色滤镜。比如,多数图像传感器采用bayer格式颜色排布,包括“grbg”、“gbrg”、“rggb”和“bggr”四种。也有“yccb”、“rccb”、“rgbir”等各种不同的颜色排布方式。图像传感器的颜色排布方式,并不构成本专利的限制要素。本发明中可以采用分通道的算法进行镜头阴影校正,且分通道的统计方式,通道既指包括但不限于颜色排布的方式,对像素的分组结构或行为;也就是说,通道的分组方式可以由颜色排布构成,或者由adc的结构构成,或者由版图结构构成。

以下实施例以“grbg”的颜色排布作为分通道依据对本发明进行进一步阐述:

实施例1

本实施例提供的一种图像传感器中镜头阴影校正方法,包括如下步骤:

s01:图像传感器采集镜头阴影图像,获取镜头阴影图像的亮度中心。

具体的,将镜头阴影图像分为gr通道、r通道、b通道和gb通道,对镜头阴影图像中gr通道的每一行求平均值,并将每一行的均值联合起来构成行平均值,求出行平均值中的最大值,并将其记为行方向的中心位置rowcenter;对镜头阴影图像的gr通道的每一列求平均值,并将每一列的均值联合起来构成列平均值,求出列平均值的最大值,并将其记为列方向的中心位置colcenter;上述求出的行、列中心记为亮度中心(rowcenter,colcenter),即为图像中gr通道的亮度中心,由此r通道的亮度中心为(rowcenter,colcenter+1),b通道的亮度中心为(rowcenter+1,colcenter),gb通道的亮度中心为(rowcenter+1,colcenter+1)。

s02:计算镜头阴影图像亮度中心到四个角点之间的距离,并找出最大距离值distmax。

s03:设置圆圈数目circlenums,并根据圆圈数目和最大距离求出圆圈划分步长step;其中,circlenums为大于0的整数,step=distmax/step。

s04:根据步长划分圆圈区域dist;统计每个圆圈区域的的阴影校正增益。具体的,统计每个圆圈区域各个颜色通道的亮度平均值,构建gr通道的亮度平均值grlightavg、r通道的亮度平均值rlightavg、b通道的亮度平均值blightavg、gb通道的亮度平均值gblightavg。求出每个圆圈区域各个颜色通道的阴影校正增益,构建gr通道的阴影校正增益grgain、r通道的阴影校正增益rgain、b通道的阴影校正增益bgain、gb通道的阴影校正增益gbgain,计算方式如下:

其中,其中grlightcenter为gr通道的亮度中心值、rlightcenter为r通道的亮度中心值、blightcenter为b通道的亮度中心值、gblightcenter为gb通道的亮度中心值,grlightavg(k)为gr通道第k个圆圈区域的亮度平均值,rlightavg(k)为r通道第k个圆圈区域的亮度平均值,blightavg(k)为b通道第k个圆圈区域的亮度平均值,gblightavg(k)为gb通道第k个圆圈区域的亮度平均值。

s05:计算待校正像素距离对应通道亮度中心的距离,并根据该距离与阴影校正增益对待校正像素进行校正。

采用线性插值法对待校正像素pixgr((r,c)进行校正,针对gr通道进行镜头阴影校正的方法为:

当0<distgr≤step/2时,imageout(r,c)=imagein(r,c),其中distgr为当前像素点到gr通道亮度中心的距离,imageout(r,c)为经过镜头阴影校正后的像素值,imagein(r,c)为输入图像像素值;

当[(2×k-3)×step]/2<distgr≤[(2×k-1)×step]/2时,imageout(r,c)=imagein(r,c)×[leftdistgr×gain(k)+rightdistgr×gain(k-1)]/interdistgr;其中,leftdistgr=distgr-[(2×k-3)×step]/2;rightdistgr=[(2×k-1)×step]/2-dist;interdistgr=rightdistgr-leftdistgr;k表示当前像素点pixgr((r,c)所在的圆圈区域;

当[(2×circlenums-3)×step]/2<distgr≤[(2×circlenums-1)×step+steplast]/2时,imageout(r,c)=imagein(r,c)×[leftdistgr×gain(circlenums)+rightdistgr×gain(circlenums-1)]/interdistgr;其中,leftdistgr=dist-[(2×circlenums-3)×step]/2;rightdistgr=[(2×circlenums-1)×step+steplast]/2-dist;interdistgr=rightdistgr-leftdistgr;k表示当前像素点pixgr((r,c)所在的圆圈区域;steplast表示最后一个圆圈区域的步长;

当[(2×circlenums-1)×step+steplast]/2<distgr≤distmax时,imageout(r,c)=imagein(r,c)×gain(circlenums)。

同理,可以通过线性插值法求出r、b、gb通道内每一个像素点经过镜头阴影校正后的像素值。

如附图5所示,对经过本实施例校正之后的图像的行方向和列方向分别求行平均值和列平均值,得出的均值图如附图5所示,对比附图2可知,采用本发明方法校正之后的图像在行方向和列方向上的亮度差均得到改善。

以上所述仅为本发明的优选实施例,所述实施例并非用于限制本发明的专利保护范围,因此凡是运用本发明的说明书及附图内容所作的等同结构变化,同理均应包含在本发明所附权利要求的保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1