镜头阴影校正方法和系统
技术领域
本发明涉及图像处理技术领域,特别是涉及一种镜头阴影校正方法和系统。
背景技术
通常,在摄像系统中,由于镜头阴影的原因,导致成像后的图像在靠近镜头中心点的地方会亮一些,远离中心点的地方逐渐变暗。这种现象即为通常所说的暗角。目前改善暗角现象一般采用镜头阴影校正方法。即,根据不同的镜头型号,采用相对应的校正曲线对图像阴影部分进行校正。其中,校正的计算公式通常为:p'=p*F(r)。其中,(x0,y0)为镜头中心点,r为被校正图像中任一像素点(x,y)到被校正图像的中心点的距离;p为原始像素值,p’为镜头阴影校正后的像素值;F(r)为校正曲线。
但是,采用上述方法对镜头进行校正时,当拍摄图像亮度比较低且拍摄图像颜色较为单一(或拍摄图像单一颜色区域较大)时,校正后的图像就会出现明显的色阶现象(类似于等高线的色圈),从而导致拍摄图像不均匀。
发明内容
基于此,有必要针对传统的镜头阴影校正方法导致校正后的图像出现色阶现象,从而导致图像不均匀的问题,提供一种镜头阴影校正方法和系统。
为实现本发明目的提供的一种镜头阴影校正方法,包括如下步骤:
根据拍摄待校正图像的镜头属性,获取相应的第一校正曲线F(r);
根据所述第一校正曲线F(r)以及预设的随机数范围函数模型,确定随机数范围函数D(r),并根据所确定的所述随机数范围函数,获取预设范围内的随机抖动量R(D(r));
将所述随机抖动量R(D(r))引入所述第一校正曲线F(r)中,得到相应的第二校正曲线F(r+R(D(r)))后,根据所述第二校正曲线F(r+R(D(r)))对所述待校正图像进行校正。
在其中一个实施例中,所述根据所述第一校正曲线F(r)以及预设的随机数范围函数模型,确定随机数范围函数,包括如下步骤:
读取预设的所述随机数范围函数模型,并根据所述第一校正曲线F(r)的斜率计算得到相应的所述随机数范围函数;
其中,所述随机数范围函数随所述第一校正曲线的斜率的增大而减小。
在其中一个实施例中,所述随机数范围函数模型为或
其中,a、b均为所述随机数范围函数模型中的系数。
在其中一个实施例中,所述根据所确定的所述随机数范围函数,获取预设范围内的随机抖动量,包括如下步骤;
根据所述随机数范围函数以及所述待校正图像的当前校正位置,生成相应的随机数rand;
根据所述随机数以及所述随机数范围函数,按照公式:R(D(r))=rand%D(r)-D(r)/2进行计算,得到预设范围内的所述随机抖动量;
其中,%为取模运算。
在其中一个实施例中,所述根据所述第一校正曲线F(r)以及预设的随机数范围函数模型,确定随机数范围函数之后,还包括如下步骤:
根据所述当前校正位置处的像素点到所述待校正图像的中心点的距离对所述随机数范围函数进行分段,得到预设段数的随机数范围函数的分段函数;
将得到的每一段所述分段函数分别进行存储,并建立每一段所述分段函数与其存储位置的映射关系,生成相应的查找表。
在其中一个实施例中,所述根据所述随机数范围函数以及所述待校正图像的当前校正位置,生成相应的随机数rand,包括如下步骤:
根据所述当前校正位置由所述查找表中查找并获取相应的第一随机数范围参数值,并根据所述第一随机数范围参数值生成相应的所述随机数rand。
相应的,本发明还提供了一种镜头阴影校正系统,包括第一校正曲线获取模块、随机抖动量生成模块和镜头阴影校正模块;
所述第一校正曲线获取模块,用于根据拍摄待校正图像的镜头属性,获取相应的第一校正曲线F(r);
所述随机抖动量生成模块,用于根据所述第一校正曲线F(r)以及预设的随机数范围函数模型,确定随机数范围函数D(r),并根据所确定的所述随机数范围函数,获取预设范围内的随机抖动量R(D(r));
所述镜头阴影校正模块,用于将所述随机抖动量R(D(r))引入所述第一校正曲线F(r)中,得到相应的第二校正曲线F(r+R(D(r)))后,根据所述第二校正曲线F(r+R(D(r)))对所述待校正图像中当前校正位置处的像素点进行校正。
在其中一个实施例中,所述随机抖动量生成模块包括随机数范围函数确定单元;
所述随机数范围函数确定单元,用于读取预设的所述随机数范围函数模型,并根据所述第一校正曲线F(r)的斜率计算得到相应的所述随机数范围函数;
其中,所述随机数范围函数随所述第一校正曲线的斜率的增大而减小。
在其中一个实施例中,所述随机抖动量生成模块包括随机数生成单元和取模运算单元;
所述随机数生成单元,用于根据所述随机数范围函数以及所述待校正图像的当前校正位置,生成相应的随机数rand;
所述取模运算单元,用于根据所述随机数rand以及所述随机数范围函数,按照公式:R(D(r))=rand%D(r)-D(r)/2进行计算,得到预设范围内的所述随机抖动量;
其中,%为取模运算。
在其中一个实施例中,所述随机抖动量生成模块还包括函数分段单元和查找表生成单元;
所述函数分段单元,用于根据所述当前校正位置处的像素点到所述待校正图像的中心点的距离对所述随机数范围函数进行分段,得到预设段数的随机数范围函数的分段函数;
所述查找表生成单元,用于将得到的每一段所述分段函数分别进行存储,并建立每一段所述分段函数与其存储位置的映射关系,生成相应的查找表。
在其中一个实施例中,所述随机数生成单元包括查找获取子单元和生成子单元;
所述查找获取子单元,用于根据所述当前校正位置由所述查找表中查找并获取相应的第一随机数范围参数值;
所述生成子单元,用于根据所述第一随机数范围参数值生成相应的所述随机数rand。
上述镜头阴影校正方法,通过根据拍摄待校正图像的镜头属性,获取相应的第一校正曲线后,根据第一校正曲线以及预设的随机数范围函数模型,确定相应的随机数范围函数,并根据所确定的随机数范围函数,获取预设范围内的随机抖动量。从而将获取的随机抖动量引入第一校正曲线中得到相应的第二校正曲线,并根据第二校正曲线对待校正图像进行校正。其通过在进行图像校正的校正曲线中引入随机抖动量,从而采用修正后的校正曲线进行镜头阴影的校正,有效避免了采用传统的校正曲线进行镜头银镜校正时导致校正后的图像出现色阶的现象,使得校正后的图像具有良好的均匀性,有效改善了图像质量,最终解决了传统的镜头阴影校正方法导致校正后的图像出现色阶现象,从而导致图像不均匀的问题。
附图说明
图1为本发明的镜头阴影校正方法的一具体实施例的流程图;
图2为本发明的镜头阴影校正方法的一具体实施例中第一校正曲线图;
图3为本发明的镜头阴影校正方法的一具体实施例中第一校正曲线斜率图;
图4为本发明的镜头阴影校正方法的一具体实施例中的随机数范围函数模型图;
图5为本发明的镜头阴影校正方法的另一具体实施例中的随机数范围函数模型图;
图6为本发明的镜头阴影校正方法的另一具体实施例的流程图;
图7为本发明的镜头阴影校正方法的另一具体实施例中分段后的随机数范围函数图;
图8为本发明的镜头阴影校正方法的一具体实施例中生成随机数的示意图;
图9为本发明的镜头阴影校正系统的一具体实施例的结构示意图;
图10为本发明的镜头阴影校正系统的另一具体实施例的结构示意图。
具体实施方式
为使本发明技术方案更加清楚,以下结合附图及具体实施例对本发明作进一步详细说明。
首先,应当说明的是,本发明中所提及的待校正图像为通过拍摄镜头拍摄的初始图像。也就是说,当拍摄镜头拍摄图像后可通过本发明的镜头阴影校正方法对拍摄图像进行阴影校正。
参见图1,作为本发明的镜头阴影校正方法的一具体实施例,其首先包括步骤S100,根据拍摄待校正图像的镜头属性,获取相应的第一校正曲线F(r)。其中,不同属性的镜头对应不同的第一校正曲线。具体的,可根据镜头的型号进行相应的第一校正曲线的获取。如:参见图2,为所获取的对应一种类型的镜头的第一校正曲线。此处,需要说明的是,横坐标为待校正图像中的某一校正位置处的像素点到镜头中心点(即,待校正图像的中心点)的距离r。纵坐标则表征根据某一像素点到镜头中心点的距离所得到的对应该像素点的校正系数。其中,r可通过公式:计算得到。应当指出的是,(x,y)为待校正图像中当前校正位置处的像素点的位置坐标。(x0,y0)则为待校正图像的中心点坐标,也可称之为镜头中心点坐标。
当通过步骤S100,根据镜头属性获取相应的第一校正曲线F(r)后,进而再执行步骤S200,根据第一校正曲线F(r)以及预设的随机数范围函数模型,确定随机数范围函数D(r)。进而再根据所确定的随机数范围函数,获取预设范围内的随机抖动量R(D(r))。
其中,需要说明的是,随机数范围函数模型可进行预先存储。由此,当进行随机数范围函数的确定时,可直接由存储的所有随机数范围函数模型中调取相应的随机数范围函数模型进行随机数范围函数的确定即可。操作简单,并且还避免了随机数范围函数模型在每次校正过程中的建立过程,从而提高了校正速率。
同时,参见图3,应当说明的是,作为本发明的镜头阴影校正方法的一具体实施例,当在步骤S200,根据第一校正曲线F(r)以及预设的随机数范围函数模型,确定随机数范围函数D(r)时,其具体可通过步骤S210,读取预设的随机函数模型,并根据第一校正曲线F(r)的斜率计算得到相应的随机数范围函数。
应当指出的是,随机数范围函数表征了获取随机抖动量时所需要的随机数的取值范围。由此,对于随机数范围函数的取值,一般来说,随机数范围函数的取值随着第一校正曲线的斜率的增加而减小。即,第一校正曲线的斜率越小,对应的随机数的范围越大;第一校正曲线的斜率越大,对应的随机数的范围越小。由此,预先存储的随机数范围函数模型也应当是与第一校正曲线的斜率呈反比关系的。
如:参见图4,为本发明的镜头阴影校正方法的一具体实施例中所获取的第一校正曲线的斜率。根据该斜率以及随机数范围函数模型与斜率的反比例关系,可以建立多种随机数范围函数模型。如:参见图5和图6,分别为和两种表征方式的随机数范围函数模型。其中,a、b均为随机数范围函数模型中的系数,其可根据实际情况进行具体确定。
可以理解的是,本领域技术人员也可根据所获取的第一校正曲线的斜率以及随机数范围函数模型与第一校正曲线的斜率呈反比的关系,获取不同于上述公式的随机数范围函数模型。也就是说,所预先建立并存储的随机数范围函数模型的表征方式可为多种。优选的,可采用上述两种线性模型来表征。通过采用上述任意两种随机数范围函数模型,能够有效简化后续随机数范围函数的确定过程以及随机抖动量的获取过程。即,能够有效简化计算过程,从而降低计算难度,进而也就有效降低了能耗。
为更清楚的说明根据第一校正曲线的斜率以及预设的随机数范围函数模型来确定随机数范围函数的具体过程,以下以随机数范围函数模型选用线性模型为例,进行更为详细的说明。
首先,读取预设的随机数范围函数模型进而再根据第一校正曲线的斜率进行a、b两个系数的确定。具体的,可以采用两点确定直线的方式:当第一校正曲线的斜率为0时,此时随机数范围函数模型的最大值为Dmax。当第一矫正曲线的斜率为最大值Kmax时,随机数范围函数模型的最小值为Dmin。通过上述两个点可得到关于a和b的方程:Dmax=b;Dmin=-a*Kmax+b。其中,Dmin,Dmax,Kmax可以根据所获取的第一校正曲线来定义。一般情况下,Dmin取值为16,Dmax取值为96,Kmax取值介于0.01至0.001之间。
通过上述方程联立确定随机数范围函数模型中a和b两个参数之后,将所最终确定的a和b两个参数代入随机数范围函数模型中即可得到相应的随机数范围函数D(r)。
优选的,当确定最终的随机数范围函数之后,为了提高后续随机抖动量的获取进程,从而有效提高镜头阴影校正的速率,同时还能够减小资源消耗,参见图3,作为本发明的镜头阴影校正方法的另一具体实施例,其还包括步骤S220,根据当前校正位置处的像素点到待校正图像的中心点的距离对随机数范围函数进行分段,得到预设段数的随机数范围函数的分段函数。此处,需要说明的是,在本发明的镜头阴影校正方法中,随机数范围函数只是表示随机数的取值范围,因此,对其精度不需要要求太高。因此,可直接将确定后的随机数范围函数进行分段得到多段随机数范围函数的分段函数。由此,当进行待校正图像的当前校正位置处的像素点校正时,可直接按照当前校正位置选取相应的分段函数进行随机抖动量的生成。
此外,为了便于随机数范围函数的分段函数的查找,当通过步骤S220,根据当前校正位置处的像素点到待校正图像的中心点的距离对随机数范围函数进行分段,得到预设段数的随机数范围函数的分段函数后,还可通过步骤S230,将得到的每一段分段函数分别进行存储,并建立每一段分段函数与其存储位置的映射关系,生成相应的查找表。由此,当查找当前校正位置对应的分段函数时,直接通过查找表中的映射关系获取当前校正位置对应的分段函数的存储位置。
如:参见图7,为本发明的镜头阴影校正方法的一具体实施例中分段后的随机数范围函数。其中,将随机数范围函数根据r的范围分成64段,在每一段中随机数范围函数的分段函数均为一个固定的常数,这样可以极大的减小集成电路资源的消耗,并且只需要64个寄存器就可以表示随机数范围函数的曲线。同时,在实际应用时,可根据镜头的属性(如:型号)获取已知的第一校正曲线,并根据第一校正曲线计算出随机数范围函数曲线,然后再抽样为64个点的值,然后将64个点的数值配置到硬件寄存器中即可。电路结构简单,易于实现。
进一步的,当通过上述任一种方法确定随机数范围函数之后,即可通过步骤S240,根据所确定的随机数范围函数,获取预设范围内的随机抖动量R(D(r))。此处需要说明的是,在根据所确定的随机数范围函数,获取预设方位内的随机抖动量时,需要用到随机数。因此,参见图3,首先可通过步骤S241,根据随机数范围函数以及待校正图像的当前校正位置,生成相应的随机数rand。进而再通过步骤S242,根据随机数以及随机数范围函数,按照公式:R(D(r))=rand%D(r)-D(r)/2进行计算,得到预设范围内的随机抖动量。其中,%为取模运算。随机抖动量R(D(r))则为求[-D(r)/2,D(r)/2]范围内的随机数。
其中,当通过步骤S241,根据随机数范围函数以及待校正图像的当前校正位置,生成相应的随机数rand时,优选的,其可通过步骤S241’,根据当前校正位置由查找表中查找并获取相应的第一随机数范围参数值,并根据第一随机数范围参数值生成相应的随机数rand来实现。其通过根据当前校正位置由查找表中查找相应的第一随机数范围参数值,进而再根据所查找到的第一随机数范围参数值进行随机数的生成,相较于根据整段随机数范围函数生成随机数来说,不仅简化了随机数的生成过程,同时还有效节省了存储空间。同时,还通过相对应的第一随机数范围参数值来生成所需要的随机数,使得所生成的随机数更加精确,从而还进一步的提高了校正精度。
其中,需要说明的是,作为本发明的镜头阴影校正方法的一具体实施例,优选的,参见图8,当根据所确定的随机数范围函数或第一随机数范围参数值生成随机数时,随机数生成器可采用线性反馈移位寄存器来实现。在实现时,生成的随机数为16位,对应的生成多项式为:f(x)=x∧16+x∧14+x∧13+x∧11+1。其通过采用线性反馈移位寄存器即可实现随机数的生成,结构简单,且成本低廉。
当获取到相应的随机抖动量之后,参见图1,此时,再执行步骤S300,将随机抖动量R(D(r))引入第一校正曲线F(r)中,得到相应的第二校正曲线F(r+R(D(r)))后,根据第二校正曲线F(r+R(D(r)))对待校正图像进行校正即可。其中,具体的,当根据第二校正曲线对待校正图像进行校正时,具体可通过公式:p'=p*F(r+D(r))进行校正。其中,p’为校正后的像素点的像素值(即,校正后的像素值),p为校正前的像素点的像素值(即,原始像素值)。
也就是说,本发明的镜头阴影校正方法通过在传统的校正曲线中引入随机抖动量,对校正曲线进行修正后,使得修正后的校正曲线相较于传统的校正曲线,不再是单调变化的,而是根据当前校正位置处的像素点与中心点的距离进行相适应的调整,从而实现对待校正图像中两个相邻圆环的边界处进行模糊处理的目的。由此,当根据修正后的校正曲线进行镜头阴影的校正时,能够有效提高校正精度,同时还能够完全消除镜头阴影校正所产生的色阶问题。并且,其计算简单,适应性强,且便于硬件实现。
相应的,为了实现上述任一种镜头阴影校正方法,本发明还提供了一种镜头阴影校正系统100。由于本发明提供的镜头阴影校正系统100的工作原理与本发明提供的镜头阴影校正方法的原理相同或相似,因此重复之处不再赘述。
参见图9,作为本发明的镜头阴影校正系统100的一具体实施例,其包括第一校正曲线获取模块110、随机抖动量生成模块120和镜头阴影校正模块130。其中,第一校正曲线获取模块110,用于根据拍摄待校正图像的镜头属性,获取相应的第一校正曲线F(r)。随机抖动量生成模块120,用于根据第一校正曲线F(r)以及预设的随机数范围函数模型,确定随机数范围函数D(r),并根据所确定的随机数范围函数,获取预设范围内的随机抖动量R(D(r))。镜头阴影校正模块130,用于将随机抖动量R(D(r))引入第一校正曲线F(r)中,得到相应的第二校正曲线F(r+R(D(r)))后,根据第二校正曲线F(r+R(D(r)))对待校正图像中当前校正位置处的像素点进行校正。
另外,还需要说明的是,参见图9,由于本发明的镜头阴影校正系统100是对镜头拍摄的图像进行阴影校正,因此,其相应的还包括图像输入模块140。其中,图像输入模块140与镜头阴影校正模块130相连接,用于将待校正图像输入至镜头阴影校正模块130中,由镜头阴影校正模块130进行校正。
此外,相应的,参见图9,其还可包括图像输出模块150。该图像输出模块150同样与镜头阴影校正模块130相连接,用于将由镜头阴影校正模块130校正后的图像输出进行显示。
进一步的,参见图10,作为本发明的镜头阴影校正系统100的另一具体实施例,随机抖动量生成模块120包括随机数范围函数确定单元121。随机数范围函数确定单元121,用于读取预设的随机数范围函数模型,并根据第一校正曲线F(r)的斜率计算得到相应的随机数范围函数。其中,随机数范围函数随第一校正曲线的斜率的增大而减小。
更进一步的,参见图10,随机抖动量生成模块120还包括随机数生成单元122和取模运算单元123。其中,随机数生成单元122,用于根据随机数范围函数以及待校正图像的当前校正位置,生成相应的随机数rand。取模运算单元123,用于根据随机数rand以及随机数范围函数,按照公式:R(D(r))=rand%D(r)-D(r)/2进行计算,得到预设范围内的随机抖动量。其中,%为取模运算。
优选的,随机抖动量生成模块120还包括函数分段单元124和查找表生成单元125。其中,函数分段单元124,用于根据当前校正位置处的像素点到待校正图像的中心点的距离对随机数范围函数进行分段,得到预设段数的随机数范围函数的分段函数。查找表生成单元125,用于将得到的每一段分段函数分别进行存储,并建立每一段分段函数与其存储位置的映射关系,生成相应的查找表。
相应的,随机数生成单元122可采用线性反馈移位寄存器来实现。并且,随机数生成单元122可包括查找获取子单元和生成子单元(图中未示出)。其中,查找获取子单元,用于根据当前校正位置由查找表中查找并获取相应的第一随机数范围参数值。生成子单元,用于根据第一随机数范围参数值生成相应的随机数rand。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。