发明内容
本发明要解决的技术问题是提供一种影像传感器的阴影补偿方法及装置,能够适用于影像传感器的成像特性为椭圆模型时的情况。
为了解决上述问题,本发明提供了一种影像传感器的阴影补偿方法,包括以下步骤:
分别计算图像中各像素点的校正因子gain(x,y):
gain(x,y)=(1+A(x-x0)2+B(y-y0)2)2;
其中,x是该像素点所在的列,y是该像素点所在的行;A,B为用于表示影像传感器成像特性的椭圆模型的参数,x0,y0为椭圆的中心点位置;
对于每个像素点,将影像传感器采集到的该像素点的原始强度值Lin(x,y)乘以gain(x,y),得到强度值Lout(x,y),将该像素点的强度值调整为Lout(x,y)。
进一步地,按迭代的方法计算A(x-x0)2和B(y-y0)2;所述迭代的方法为:
F1(x+1)=F1(x)+offset_1_x(x),offset_1_x(x+1)=offset_1_x(x)+2A;
F2(y+1)=F2(y)+offset_1_y(y),offset_1_y(y+1)=offset_1_y(y)+2B;
其中F1(x)=A(x-x0)2,F2(y)=B(y_y0)2;offset_1_x(0)=A+2A(0-x0);offset_1_y(0)=B+2B(0-y0)。
进一步地,分别计算图像中各像素点的校正因子gain(x,y)的步骤具体包括:
A、设置第0行第0列的像素点的F1(0)和F2(0),以及offset_1_x(0)和offset_1_y(0);得到该像素点的gain(x,y);
B、对于第0行其它列的各像素点,F2(y)均等于F2(0),由F1(0)和offset_1_x(0)通过迭代的方法依次得到各像素点的F1(x),从而得到各像素点的gain(x,y);i=1;
C、对于第i行第0列的像素点,F1(x)均等于F1(0),由F2(i-1)和offset_1_y(i)通过迭代的方法得到该像素点的F2(i),从而得到该像素点的gain(x,y);
D、对于第i行中其它列的各像素点,F2(y)均等于该行第0列的像素点的F2(i),由F1(0)和offset_1_x(0)通过迭代的方法依次得到各像素点的F1(x),从而得到各像素点的gain(x,y);
E、判断是否已计算完所有像素点的F1(x)和F2(y),如果不是,则i=i+1,返回步骤C;否则结束。
进一步地,计算像素点的校正因子gain(x,y)时,在Bayer格式原始图像上对不同颜色分量分别计算gain(x,y);对不同颜色分量的像素点,所述A,B,x0,y0分别为该颜色分量的椭圆模型的参数和中心点位置。
进一步地,按迭代的方法计算各颜色分量的像素点的A(x-x0)2和B(y-y0)2;所述迭代的方法为:
F1(x+2)=F1(x)+offset_x(x),offset_x(x+2)=offset_x(x)+8A;
F2(y+2)=F2(y)+offset_y(y),offset_y(y+2)=offset_y(y)+8B;
其中F1(x)=A(x-x0)2、F2(y)=B(y-y0)2,offset_x(0)=4A+4A(0-x0),offset_y(0)=4B+4B(0-y0);A、B、x0和y0为相应颜色分量的椭圆模型的参数和中心点位置。
进一步地,分别计算图像中各像素点的校正因子gain(x,y)的步骤具体包括:
分别设置各颜色分量的offset_x(0),offset_y(0),并分别对于各颜色分量,保存该颜色分量中行数和列数都最小的一个像素点P的F1(xp)和F2(yp),计算P的gain(x,y);
对于各颜色分量,分别按照下列步骤计算其它像素点的gain(x,y):
对于该颜色分量中和像素点P同行的第k列的像素点:将F2(yp)作为该像素点的F2(y);由本行第k-2列的像素点的F1(k-2),用迭代的方法计算该像素点的F1(k),得到该像素点的gain(x,y);
对于该颜色分量中和像素点P同列的第i行的像素点:将F1(Xp)作为该像素点的F1(x),由本列第i-2行的像素点的F2(i-2),用迭代的方法计算该像素点的F2(i),得到该像素点的gain(x,y);
对于该颜色分量中第i行第k列的像素点,将F2(i)作为该像素点的F2(y),由本行第k-2列的像素点的F1(k-2),用迭代的方法计算该像素点的F1(k);得到该像素点的gain(x,y);
其中,i和k为大于或等于2的整数,i最大值不超过像素点的总行数减1,k最大值不超过像素点的总列数减1。
本发明还提供了一种影像传感器的阴影补偿装置,包括:
增益系数计算单元,用于确定各像素点的增益系数gain(x,y):
gain(x,y)=(1+A(x-x0)2+B(y-y0)2)2;
其中,x是该像素点所在的列,y是该像素点所在的行;A,B为用于表示影像传感器成像特性的椭圆模型的参数,x0,y0为椭圆的中心点位置;
接收单元,用于接收影像传感器所采集的原始图像中各像素点的原始强度值Lin(x,y);
强度值计算单元,用于将Lin(x,y)乘以gain(x,y),得到各像素点阴影补偿后的强度值Lout(x,y);
调整单元,用于分别将各像素点的强度值调整为Lout(x,y)。
进一步地,所述增益系数计算单元按照迭代的方法计算F1(x)=A(x-x0)2和F2(y)=B(y-y0)2;迭代的方法为:
F1(x+1)=F1(x)+offset_1_x(x),offset_1_x(x+1)=offset_1_x(x)+2A;
F2(y+1)=F2(y)+offset_1_y(y),offset_1_y(y+1)=offset_1_y(y)+2B;
offset_1_x(0)=A+2A(0-x0);offset_1_y(0)=B+2B(0-y0)。
进一步地,所述增益系数计算单元确定各像素点的增益系数gain(x,y)具体是指:
所述增益系数计算单元保存第0行第0列的像素点的F1(0)和F2(0),以及offset_1_x(0)和offset_1_y(0);得到该像素点的gain(x,y);
所述增益系数计算单元对于第0行第k列的像素点:将F2(0)作为该像素点的F2(y);由第0行第k-1列的像素点的F1(k-1),用迭代的方法计算该像素点的F1(k),得到该像素点的gain(x,y);
所述增益系数计算单元对于第i行第0列的像素点:将F1(0)作为该像素点的F1(x),由本列第i-1行的像素点的F2(i-1),用迭代的方法计算该像素点的F2(i),得到该像素点的gain(x,y);
所述增益系数计算单元对于第i行第k列的像素点:将F2(i)作为该像素点的F2(y);由本行第k-1列的像素点的F1(k-1),用迭代的方法计算该像素点的F1(k),得到该像素点的gain(x,y);
其中,i和k为大于或等于1的整数,i最大值不超过像素点的总行数减1,k最大值不超过像素点的总列数减1。
进一步地,所述增益系数计算单元包括:
R颜色分量增益系数计算子单元,用于确定R颜色分量的像素点的gain(x,y),所述A,B,x0,y0为R颜色分量的椭圆模型的参数和中心点位置;
G1颜色分量增益系数计算子单元,用于确定G1颜色分量的像素点的gain(x,y),所述A,B,x0,y0为G1颜色分量的椭圆模型的参数和中心点位置;
G2颜色分量增益系数计算子单元,用于确定G2颜色分量的像素点的gain(x,y),所述A,B,x0,y0为G2颜色分量的椭圆模型的参数和中心点位置;
B颜色分量增益系数计算子单元,用于确定B颜色分量的像素点的gain(x,y),所述A,B,x0,y0为B颜色分量的椭圆模型的参数和中心点位置。
进一步地,各颜色分量增益系数计算子单元分别按照迭代的方法计算F1(x)=A(x-x0)2和F2(y)=B(y-y0)2;迭代的方法为:
F1(x+2)=F1(x)+offset_x(x),offset_x(x+2)=offset_x(x)+8A;
F2(y+2)=F2(y)+offset_y(y),offset_y(y+2)=offset_y(y)+8B;
其中,offset_x(0)=4A+4A(0-x0),offset_y(0)=4B+4B(0-y0);A、B、x0和y0为相应颜色分量的椭圆模型的参数和中心点位置。
进一步地,各颜色分量增益系数计算子单元分别确定该颜色分量的像素点的gain(x,y)具体是指:
各颜色分量增益系数计算子单元中分别保存该颜色分量的offset_x(0),offset_y(0),并分别保存该颜色分量中行数和列数都最小的一个像素点P的F1(xp)和F2(yp),计算该像素点P的gain(x,y);
各颜色分量增益系数计算子单元对于该颜色分量中和像素点P同行的第k列的像素点:将F2(yp)作为该像素点的F2(y);由本行第k-2列的像素点的F1(k-2),用迭代的方法计算该像素点的F1(k),得到该像素点的gain(x,y);
各颜色分量增益系数计算子单元对于该颜色分量中和像素点P同列的第i行的像素点:将F1(Xp)作为该像素点的F1(x),由本列第i-2行的像素点的F2(i-2),用迭代的方法计算该像素点的F2(i),得到该像素点的gain(x,y);
各颜色分量增益系数计算子单元对于该颜色分量中第i行第k列的像素点,将F2(i)作为该像素点的F2(y),由本行第k-2列的像素点的F1(k-2),用迭代的方法计算该像素点的F1(k);得到该像素点的gain(x,y);
其中,i和k为大于或等于2的整数,i最大值不超过像素点的总行数减1,k最大值不超过像素点的总列数减1。
本发明的技术方案可以适用于影像传感器的成像特性为椭圆模型时的情况,包含圆的模型;本发明的一个优化方案在Bayer格式原始图像上对四个颜色分量分别进行处理,提高了图像质量,避免了插值所带来的会破坏原始图像各个颜色分量特性、以及各个颜色分量的频谱混叠,引入处理假象,破坏原来的影像传感器的阴影特征的问题;本发明的另一优化方案对各颜色分量分别进行迭代计算,减少了计算量,相对于在插值后的图像上处理,可以节省2/3的计算量;本发明的又一个优化方案采用迭代处理,虽然适用的模型复杂,但运算量较低,且硬件设计简化,只需要加法器。
具体实施方式
下面将结合附图及实施例对本发明的技术方案进行更详细的说明。
实施例一,一种影像传感器的阴影补偿方法,包括以下步骤:
对于图像中各像素点,计算该像素点的校正因子或补偿因子gain(x,y),其中,x是该像素点所在的列,y是该像素点所在的行;
根据影像传感器采集到的各像素点的原始强度值Lin(x,y),通过下式得到各像素点阴影补偿后的强度值Lout(x,y),分别将各像素点的强度值调整为Lout(x,y)。
Lout(x,y)=Lin(x,y)×gain(x,y) (1)
Lin(x,y)为Bayer格式原始图像上(x,y)位置上的像素的输入强度值(Intensity),即影像传感器采集到的原始强度值;Lout(x,y)为Bayer格式原始图像上(x,y)位置上的像素的阴影补偿后的强度值。
对于同一个影像传感器,各像素点的gain求一次即可。
其中,每一像素点上的校正因子gain(x,y)的求取方法为:
gain(x,y)=(1+A(x-x0)2+B(y-y0)2)2 (2)
=(1+F12(x,y))2=(1+F1(x)+F2(y))2
A(x-x0)2+B(y-y0)2是用于表示影像传感器成像特性的椭圆模型的表达式,如果A=B则为圆的表达式。其中,A,B为关于椭圆模型的参数,x0,y0为椭圆模型的中心点位置。
该椭圆模型的参数A,B及中心点,可以通过镜头的光学参数,以及透镜和影像传感器装配的位置来得到,采用提取透镜参数的方法即可得到。
也可以通过图像处理的方法得到,具体步骤为:
在均匀光照的条件下,用影像传感器拍摄一张亮度均匀的白纸或灰纸,得到一张图像。如果是完美的成像系统的话,那么这张图像上的相同类型的颜色的像素的强度值也应该是均匀的;但现在得到的实际图像是不均匀的,其形状大概类似椭圆;通过曲面拟合,得到椭圆模型的参数和中心点位置。
进一步地,可以对该图像的各个颜色分量的部分或所有像素点,通过曲面拟合,得到该颜色分量的椭圆模型的参数和中心点位置。
本实施例的一种实施方式中,对Bayer格式原始图像上对四个颜色分量分别进行处理;所谓Bayer格式原始图像,是指每个感光单元只接收一种颜色(R或G1或G2或B)的强度值,并且按如图1所示的格式排列。整个原始图像就是由图1所示的2x2的单元构成的,如图2所示。
该实施方式也适用于CMYG或其它的影像传感器,只要整个影像传感器是由2x2单元所扩展开来的就可以。
该实施方式中,对于不同颜色分量分别计算gain(x,y);对不同颜色分量的像素点,A,B,x0,y0分别是该颜色分量的椭圆模型的参数和中心点位置,因此:gain(x,y,r)=(1+A_r(x-x0_r)2+B_r(y-y0_r)2)2
gain(x,y,g1)=(1+A_g1(x-x0_g1)2+B-g1(y-y0_g1)2)2
gain(x,y,g2)=(1+A_g2(x-x0_g2)2+B_g2(y-y0_g2)2)2 (3)
gain(x,y,b)=(1+A_b(x-x0_b)2+B_b(y-y0_b)2)2
A_r,B_r,x0_r,y0_r分别为R颜色分量的椭圆模型的参数和中心点位置;A_g1,B_g1,x0_g1,y0_g1分别为G1颜色分量椭圆模型的参数和中心点位置;A_g2,B_g2,x0_g2,y0_g2分别为G2颜色分量椭圆模型的参数和中心点位置;A_b,B_b,x0_b,y0_b分别为B颜色分量椭圆模型的参数和中心点位置。
各个颜色分量的波长是不同的,影像传感器对各个颜色分量的响应是不一样的,也就表现为各个颜色分量的阴影模型是三个不同位置不同形状的椭圆,如果考虑绿色分量为G1,G2,则各个颜色分量的阴影模型是四个不同位置不同形状的椭圆;对各个颜色分量分别进行处理的好处是可以精确反映各个颜色分量的阴影表现特征。
下面重点讨论如下2个等式:
F1(x)=A(x-x0)2 (4)
F2(y)=B(y-y0)2 (5)
在不对颜色分量分别进行处理的实施方式中,各像素点是彼此邻近的,可以利用迭代的方法,通过前一像素点的距离相关的值,得到后一像素点的距离相关的值;或者利用上一像素点的距离相关的值,得到下一像素点的距离相关的值。
F1(x+1)=F1(x)+A+2A(x-x0)
令:offset_1_x(x)=A+2A(x-x0)
则:F1(x+1)=F1(x)+offset_1_x(x) (6)
这是一个关于F1(x)函数的迭代等式,其初始值为:F1(0)=A(0-x0)2
再进一步:
offset_1_x(x+1)=offset_1_x(x)+2A (7)
2A对于整幅图像,是一个常数。
等式(7)是一个关于。ffset_x(x)函数的迭代等式,offset_1_x(x)的初始值为:
offset_1_x(0)=A+2A(0-x0)
因此,本来等式(4)需要2次乘法,两个乘法器,通过等式(6)和(7)的两次迭代,只需要两次加法就可以完成;硬件设计节省2个乘法器,而乘法器在硬件中是代价很大的。
同理,F2(y+1)=F2(y)+B+2B(y-y0)
令:offset_1_y(y)=B+2B(y-y0)
则:F2(y+1)=F2(y)+offset_1_y(y) (8)
这是一个关于F(y)函数的迭代等式,其初始值为:
F2(0)=B(0-y0)2
offset_1_y(y+1)=offset_1_y(y)+2B (9)
这是一个关于offset_1_y(y)函数的迭代等式,offset_1_y(y)的初始值为:
offset_1_y(0)=B+2B(0-y0)
因此,本来等式(5)需要2次乘法,两个乘法器,通过等式(8)和(9)的两次迭代,只需要两次加法就可以完成。
综上,因此通过上面的x方向迭代和y方向迭代的处理,对于等式(4)和(5)中的4个乘法器,仅仅需要加法,就可以得到相同的结果,节省了芯片逻辑,减少了计算量。
整个计算各像素点的gain(x,y)的过程可以如下:
A、设置第0行第0列的像素点的F1(0)和F2(0),以及offset_1_x(0)和offset_1_y(0);得到该像素点的gain(x,y);
B、对于第0行其它列的各像素点,F2(y)均等于F2(0),通过等式(6)和(7),由F1(0)和offset_1_x(0)开始迭代,依次得到各像素点的F1(x),从而得到各像素点的gain(x,y);i=1;
C、对于第i行第0列的像素点,F1(x)均等于F1(0),通过等式(8)和(9)进行迭代,由F2(i-1)和offset_1_y(i)得到该像素点的F2(i),从而得到该像素点的gain(x,y);
D、对于第i行中其它列的各像素点,F2(y)均等于该行第0列的像素点的F2(i),通过等式(6)和(7),由F1(0)和offset_1_x(0)开始迭代,依次得到各像素点的F1(x),从而得到各像素点的gain(x,y);
E、判断是否已计算完所有像素点的F1(x)和F2(y),如果不是,则i=i+1,返回步骤C;否则结束。
上述过程是按照一行接一行的顺序完成所有像素点的F1(x)和F2(y)的计算,也可以按照一列接一列的顺序,此时的步骤B到E如下:
B、对于其它行第0列的各像素点,F1(x)均等于F1(0),通过等式(8)和(9),由F2(0)和offset_1_y(0)开始迭代,依次得到各像素点的F2(y),从而得到各像素点的gain(x,y);k=1;
C、对于第0行第k列的像素点,F2(y)均等于F2(0),通过等式(6)和(7)进行迭代,由F1(k-1)和offset_1_x(i)得到该像素点的F1(k),从而得到该像素点的gain(x,y);
D、对于第k列中其它行的像素点,F1(x)均等于该列第0行的像素点的F1(k),通过等式(8)和(9),由F2(0)和offset_1_y(0)开始迭代,依次得到各像素点的F2(y),从而得到各像素点的gain(x,y);
E、判断是否已计算完所有像素点的F1(x)和F2(y),如果不是,则k=k+1,返回步骤C;否则结束。
当然,还可以仅仅计算第0行各列像素点的F1(x),以及各行第1列像素点的F2(y),然后对于其余像素点,F1(x)与第0行中同一列的像素点的相同,而F2(y)与第0列中同一行的像素点的相同。
而在对Bayer格式原始图像上对四个颜色分量分别进行处理的实施方式中,由于在Bayer格式图像上,在水平或垂直方向相邻的、具有相同的颜色分量的两像素点,在水平或垂直方向上间隔1个像素,比如图2中,对于第m行、第n列的R颜色分量,在水平方向上相邻的R颜色分量分别为第m行的第n+2列和第n-2列的R颜色分量,而在垂直方向上相邻的R颜色分量分别为第n列的第m+2行和第m-2行的R颜色分量;因此,当按照不同的颜色分量分别计算F1和F2,可以利用迭代的方法,通过前一像素点的距离相关的值,得到后一具有相同颜色分量的点的距离相关的值;或者利用上一点的距离相关的值,得到下一具有相同颜色分量的点的距离相关的值:
F1(x+2)=F1(x)+4A+4A(x-x0)
令:offset_x(x)=4A+4A(x-x0)
则:F1(x+2)=F1(x)+offset_x(x) (10)
这是一个关于F1(x)函数的迭代等式,其初始值为:
F1(0)=A(0-x0)2
F1(1)=A(1-x0)2
再进一步:
offset_x(x+2)=offset_x(x)+con_A (11)
con_A=8A
con_A对于整幅图像,是一个常数。
等式(10)是一个关于offset_x(x)函数的迭代等式,offset_x(x)的初始值为:
offset_x(0)=4A+4A(0-x0)
因此,本来等式(4)需要2次乘法,两个乘法器,通过等式(10)和(11)的两次迭代,只需要两次加法就可以完成;硬件设计节省2个乘法器,而乘法器在硬件中是代价很大的。
同理,可以得到F2(y):
F2(y+2)=F2(y)+4B+4B(y-y0)
令:offset_y(y)=4B+4B(y-y0)
则:F2(y+2)=F2(y)+offset_y(y) (12)
这是一个关于F(y)函数的迭代等式,其初始条件为:
F2(0)=B(0-y0)2
F2(1)=B(1-y0)2
offset_y(y+2)=offset_y(y)+con_B (13)
con_B=8B
这是一个关于offset_y(y)函数的迭代等式,offset_y(y)的初始值为:
offset_y(0)=4B+4B(0-y0)
因此,本来等式(5)需要2次乘法,两个乘法器,通过等式(12)和(13)的两次迭代,只需要两次加法就可以完成。
综上,因此通过上面的x方向迭代和y方向迭代的处理,对于等式(4)和(5)中的4个乘法器,仅仅需要加法,就可以得到相同的结果,节省了芯片逻辑,减少了计算量。
在对Bayer格式原始图像上对四个颜色分量分别进行处理时,等式(4)和(5)的迭代算法可以推广到等式(3)中针对不同颜色分量的:F1_r(x)=A_r(x-x0_r)2和F2_r(y)=B_r(y-y0_r)2;
F1_g1(x)=A_g1(x-x0_g1)2和F2_g1(y)=B_g1(y-y0_g1)2;
F1_g2(x)=A_g2(x-x0_g2)2和F2_g2(y)=B_g2(y-y0_g2)2;以及
F1_b(x)=A_b(x-x0_b)2和F2_b(y)=B_b(y-y0_b)2;原理同等式(10)到(13),只要采用相应颜色分量的椭圆模型参数和中心点即可;相应的,由于不同颜色分量的椭圆模型参数和中心点不同,因此对于不同的颜色分量,offset_x(x),offset_y(y)分别为offset_x_r(x),offset_y_r(y);offset_x_g1(x),offset_y_g1(y);offset_x_g2(x),offset_y_g2(y);offset_x_b(x),offset_y_b(y)。
Bayer格式共有4种,不失一般性,以图3的格式为例,一种实施方式的处理流程如下:
(1)设置[0,0],[0,1],[1,0],[1,1]的四个像素点(在图3中,这四个像素点分别为R、G1、G2、B颜色分量中,行数和列数最小的像素点)的F1和F2,即设置F1_r(0),F2_r(0);F1_g1(1),F2_g1(0);F1_g2(0),F2_g2(1);F1_b(1),F2_b(1);并分别得到上述四个像素点的gain(x,y)。另外,设置各颜色分量的offset_x(0)和offset_y(0),即设置offset_x_r(0),offset_x_g1(0),offset_x_g2(0),offset_x_b(0),Offset_y_r(0),offset_y_g1(1),offset_y_g2(0),offset_y_b(0)。
(2)对于第0行和第1行的其它列的像素点[i,k](i=0,1,k>=2):由[i,k-2]的像素点的F1(k-2),根据等式(10)和(11)来计算F1(k)。
该处理流程中,以像素点所处的行和列[i,k]来表示像素点的位置,其中k为像素点的列数x,i为像素点的行数y。从Bayer图像格式可见,对于[i,k]像素点而言,必然与[i-2,k]像素点和[i,k-2]像素点属于同一个颜色分量。
由于第0行中R颜色分量的各像素点的行数y都与[0,0]像素点相同,所以对于第0行中R颜色分量的像素点,y相关的量F2_r(y)都为F2_r(0);类似的,对于第0行中G1颜色分量的像素点,y相关的量F2_g1(y)都为F2_g1(0);对于第1行中G2颜色分量的像素点,y相关的量F2_g2(y)都为F2_g2(1);对于第1行中B颜色分量的像素点,y相关的量F2_b(y)都为F2_b(1)。
得到第0行和第1行的其它列的像素点的F1(x)和F2(y)就可以得到这些像素点的gain(x,y)。
(3)对于i行(i>=2)的像素点:
对于R颜色分量的[i,0]的像素点,F1(x)为F1_r(0),由[i-2,0]的像素点的F2(i-2),根据等式(12)和(13)来计算该像素点的F2(i),得到该像素点的gain(x,y);
对于G2颜色分量的[i,0]的像素点,F1(x)为F1_g2(0),由[i-2,0]的像素点的F2(i-2),根据等式(12)和(13)来计算该像素点的F2(i),得到该像素点的gain(x,y);
对于G1颜色分量的[i,1]的像素点,F1(x)为F1_g1(1),由[i-2,1]的像素点的F2(i-2),根据等式(12)和(13)来计算该像素点的F2(i),得到该像素点的gain(x,y);
对于B颜色分量的[i,1]的像素点,F1(x)为F1_b(1),由[i-2,1]的像素点的F2(i-2),根据等式(12)和(13)来计算该像素点的F2(i),得到该像素点的gain(x,y)。
对于第i行(i>=2)的其它列的像素点[i,k](k>=2),F2(y)都为相同颜色分量的像素点的F2(i),由[i,k-2]的像素点的F1(k-2),根据等式(10)和(11)来计算该像素点的F1(k),得到该像素点的gain(x,y)。
上述步骤中,需要注意的是,对于不同颜色分量的像素点,在根据等式(11)或(13)进行计算时,所使用是该颜色分量对应的offset_x(0)、offset_y(0)、A和B。
这样处理的好处是,如果第i行的值,全部通过第i-2行的值来计算,那么需要一个行内存,来存储整个第i-2行的数据,代价就大了。
而现在的处理方式,只有第i行的第0列的像素点的F2(y)是通过i-2行的第0列的数据计算的,第1列的像素点的F2(y)与第0列的相同,然后第i行的其它列的的像素点的F2(y)与第0列的相同,而F1(x)就可以通过迭代方式计算出来;这样只需要临时保存2个点的数据就可以了,而不用保存整行的数据,可以节省存储空间,也减少运算量。
对于各类Bayer格式的原始图像,上述步骤可以概括如下:
分别设置各颜色分量的offset_x(0),offset_y(0),并分别对于各颜色分量,保存该颜色分量中行数和列数都最小的一个像素点P的F1(xp)和F2(yp),计算P的gain(x,y);
对于各颜色分量,分别按照下列步骤计算其它像素点的gain(x,y):
对于该颜色分量中和像素点P同行的第k列的像素点:将F2(yp)作为该像素点的F2(y);由本行第k-2列的像素点的F1(k-2),用迭代的方法计算该像素点的F1(k),得到该像素点的gain(x,y);
对于该颜色分量中和像素点P同列的第i行的像素点:将F1(Xp)作为该像素点的F1(x),由本列第i-2行的像素点的F2(i-2),用迭代的方法计算该像素点的F2(i),得到该像素点的gain(x,y);
对于该颜色分量中第i行第k列的像素点,将F2(i)作为该像素点的F2(y),由本行第k-2列的像素点的F1(k-2),用迭代的方法计算该像素点的F1(k);得到该像素点的gain(x,y);
其中,i和k为大于或等于2的整数,i最大值不超过像素点的总行数减1,k最大值不超过像素点的总列数减1。
上面的步骤中,是一行一行计算的,在同一行中,只需要进行水平方向的迭代来更新x相关的量F1(x);当换行时,F1(0)和F1(1)不需要重新计算,只需在该行的第0列进行垂直方向的迭代来得到该行的F2(y),对于同一行的其他列,F2(y)都是固定不变的;这可以极大地减少计算量。
在其它实施方式中,也可以一列一列计算,即:在同一列中,只需要进行垂直方向的迭代来更新y相关的量F2(y);当换列时,F2(0)和F2(1)不需要重新计算,只需在该列的第0行进行水平方向的迭代来得到该列的F1(x),对于同一行的其他列,F1(x)都是固定不变的。
实施例二,一种影像传感器的阴影补偿装置,如图4所示,包括:
增益系数计算单元,用于通过等式(2)确定各像素点的增益系数gain(x,y);
接收单元,用于接收影像传感器所采集的原始图像中各像素点的原始强度值Lin(x,y);
强度值计算单元,用于根据Lin(x,y)和gain(x,y),通过等式(1)得到各像素点阴影补偿后的强度值Lout(x,y);
调整单元,用于分别将各像素点的强度值调整为Lout(x,y)。
本实施例中,所述增益系数计算单元按照迭代的方法计算F1(x)=A(x-x0)2和F2(y)=B(y-y0)2;迭代的方法分别如等式(6)和(7)、等式(8)和(9)所示。
本实施例中,所述增益系数计算单元确定各像素点的增益系数gain(x,y)具体是指:
所述增益系数计算单元保存第0行第0列的像素点的F1(0)和F2(0),以及offset_1_x(0)和。ffset_1_y(0);得到该像素点的gain(x,y);
所述增益系数计算单元对于第0行第k列的像素点:将F2(0)作为该像素点的F2(y);由第0行第k-1列的像素点的F1(k-1),用迭代的方法计算该像素点的F1(k),得到该像素点的gain(x,y);
所述增益系数计算单元对于第i行第0列的像素点:将F1(0)作为该像素点的F1(x),由本列第i-1行的像素点的F2(i-1),用迭代的方法计算该像素点的F2(i),得到该像素点的gain(x,y);
所述增益系数计算单元对于第i行第k列的像素点:将F2(i)作为该像素点的F2(y);由本行第k-1列的像素点的F1(k-1),用迭代的方法计算该像素点的F1(k),得到该像素点的gain(x,y);
其中,i和k为大于或等于1的整数,i最大值不超过像素点的总行数减1,k最大值不超过像素点的总列数减1。
所述增益系数计算单元所保存的F1(0)和F2(0),以及offset_1_x(0)和offset_1_y(0)可以由外界设置,也可以由所述增益系数计算单元计算得到。
本实施例的一种实施方式中,对Bayer格式原始图像上对四个颜色分量分别进行处理;所述增益系数计算单元包括:
R颜色分量增益系数计算子单元,用于确定R颜色分量的像素点的gain(x,y);所述A,B,x0,y0为R颜色分量的椭圆模型的参数和中心点位置;
G1颜色分量增益系数计算子单元,用于确定G1颜色分量的像素点的gain(x,y);所述A,B,x0,y0为G1颜色分量的椭圆模型的参数和中心点位置;
G2颜色分量增益系数计算子单元,用于确定G2颜色分量的像素点的gain(x,y);所述A,B,x0,y0为G2颜色分量的椭圆模型的参数和中心点位置;
B颜色分量增益系数计算子单元,用于确定B颜色分量的像素点的gain(x,y)。所述A,B,x0,y0为B颜色分量的椭圆模型的参数和中心点位置;
本实施方式中,各颜色分量增益系数计算子单元分别按照迭代的方法计算F1(x)=A(x-x0)2和F2(y)=B(y-y0)2;迭代的方法分别如等式(10)和(11)、等式(12)和(13)所示;其中,A、B、x0和y0为相应颜色分量的椭圆模型的参数和中心点位置。
本实施方式中,各颜色分量增益系数计算子单元分别确定该颜色分量的像素点的gain(x,y)具体是指:
各颜色分量增益系数计算子单元中分别保存该颜色分量的offset_x(0),offset_y(0),并分别保存该颜色分量中行数和列数都最小的一个像素点P的F1(xp)和F2(yp),计算该像素点P的gain(x,y);
比如在图3所示的Bayer格式原始图像中,R颜色分量中行数和列数最小的一个像素点P为第0行第0列的像素点,F1(xp)和F2(yp)分别为F1_R(0)和F2_R(0);G1颜色分量中行数和列数最小的一个像素点P为第0行第1列的像素点,F1(xp)和F2(yp)分别为F1_G1(1)和F2_G1(0);G2颜色分量中行数和列数最小的一个像素点P为第1行第0列的像素点,F1(xp)和F2(yp)分别为F1_G2(0)和F2_G2(1);而B颜色分量中行数和列数最小的一个像素点P为第1行第1列的像素点,F1(xp)和F2(yp)分别为F1_B(1)和F2_B(1)。其它Bayer格式原始图像的情况类推。
各颜色分量增益系数计算子单元对于该颜色分量中和像素点P同行的第k列的像素点:将F2(yp)作为该像素点的F2(y);由本行第k-2列的像素点的F1(k-2),用迭代的方法计算该像素点的F1(k),得到该像素点的gain(x,y);
各颜色分量增益系数计算子单元对于该颜色分量中和像素点P同列的第i行的像素点:将F1(Xp)作为该像素点的F1(x),由本列第i-2行的像素点的F2(i-2),用迭代的方法计算该像素点的F2(i),得到该像素点的gain(x,y);
各颜色分量增益系数计算子单元对于该颜色分量中第i行第k列的像素点,将F2(i)作为该像素点的F2(y),由本行第k-2列的像素点的F1(k-2),用迭代的方法计算该像素点的F1(k);得到该像素点的gain(x,y);
其中,i和k为大于或等于2的整数,i最大值不超过像素点的总行数减1,k最大值不超过像素点的总列数减1。
各颜色分量增益系数计算子单元所保存的F1(xp)和F2(yp),以及offset_1_x(0)和offset_1_y(0)可以由外界设置,也可以由所述增益系数计算单元计算得到。
其它实现细节可以与实施例一中相同。
当然,本发明还可有其他多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明的权利要求的保护范围。