一种基于三角剖分划分白区范围的白平衡算法

      常规的白平衡算法中,一般会通过标准色温的R/G-B/G建议色温坐标系,然后在该坐标系中设定白区范围,对落入到白区范围的R/G/B进行加权统计处理,输出给到软件进行白平衡的增益计算。

        所介绍的这篇专利利用三角剖分的算法,在划定的白区范围内,利用各个标准色温光源下所标定的白点和白区的分界点搭建三角网格。然后利用三角网格中三角形的面积关系插值所有落入白区范围内的白点色温以及CCM以及所对应的白平衡增益。非常有意思的一种想法。

        

图1

      图1为一种常用的色温坐标系,以R/G为横坐标,以B/G为纵坐标,并在标准色温下标定各个色温下的关键色温点(32A,32B,32C,32D,32E,32F,32H),再在此关键色温点的基础上,设定其白区范围,其白区范围为30A,30B,30C,30D,30E,30F,30G,30H,30L,30J,30K,30L,30M构成的一个多边形区域。

图2

      假设图2中34这点落入32B和32C之间,那么34这点的增益、CCM/Color Temperature都可以根据预先标定好的标准色温点对于的信息插值计算得到。假设权重weight为34这点的权重值,则可以根据如下公式计算得到:

       其中,WeightD65 WeightD50分别为D65以及D50下的预定设定的权重值。d1是34这点到32C、32M所连直线的距离,d2是34这点到32D、32L所连直线的距离。其中,30A,30B,30C,30D,30E,30F,30G,30H,30L,30J,30K,30L,30M这些点应该可以根据图形界面进行调整,根据不同色温默认根据参考定给定一个一定角度经过参考点的直线。

      本专利提到了另外一种思路。首先根据不同色温在色温坐标系的参考点,通过多项式拟合得到一条色温拟合曲线。利用拟合曲线得到色温坐标系中每一个参考点对应于该曲线的切线,求解其切线的垂直线得到其白区范围参数。如图3所示,这部分操作其实可以在白平衡标定的时候完成,并且可以通过一个距离参数设置图3中Dbnd0 Dbnd1,不同色温可以设置不同的距离范围参数。比如R/G-B/G的坐标系中,中低色温的距离可以适当小点,而中高色温的距离可以适当大一点。

图3

硬件对每一个落入到图2白区范围内的像素点进行加权统计,得到总的三通道值。并不需要对每一个像素进行判断是否落入到白区范围。可以利用分块的计算,把图像分为若干块,计算每一块的R/G/B平均值是否落入到白区,然后利用这些落入到白区的R/G/B加权统计输出。即:

      然后,软件更加这些统计信息,根据公式3计算得到白平衡增益:

   

      同样的方式,可以插值计算得到任意落入白点像素所对应的CCM以及色温信息值。但是不需要每个像素都这么计算,只需要找到落入白区落点的中心或者重心点或者是R/G/B平均值计算即可。

图4

      图3中的36点为所有落入白区的38对应像素点的平均值或者重心、中心点。根据36可以插值计算得到相对于的CCM/CT值。

图5

图5中的点如果用上述公式进行插值计算你的话,会得到一个错误值。另外,由于映射到色温坐标系中的参考的并不是线性分布(如果是线性分布,是否意味着参考点在二维坐标系为一条直线?),所以使用线性插值得到的值可能会存在误差。本专利提出了一种把白区分成多边形的形式,根据多边形的面积插值得到对应相关参数。

图6

本专利利用Delaunay 三角剖分的方式,把白区分成多个三角形的组合。三角剖分之后,每个顶点都有对应的白平衡相关参数。比如色温值、CCM、对应的白平衡增益值等等,如图8。

当某一参考点或者白区边界点和其他点有较大差异或者外部环境发生较大的色温突变时,基于三角剖分计算得到的白平衡的相关参数相对会较为平滑。而不像之前的方法,可能计算得到一个异常值或者不够平滑的值。

图7

图8

基于三角剖分的插值计算如图9 所示,假设某一落点位于66A、66B、66C所组成的三角形中,该落点与66A、66B、66C组成三个子三角形,每一个子三角形都对应有一个面积。

图9

基于三角形重心坐标插值计算得到62这点相对于的白平衡参数。首先计算每个子三角形的面积,计算公式如下:

62这点相对于的白平衡参数计算如下:

其中,Avalue、Bvalue、Cvalue分别对应三角形三个顶点预先标定的白平衡相关参数。可以是CCM/CT等。

如图8,计算得到70点对于的CCM、CT等白平衡相关值。

其中,

areaA是32D、70、32E所组成的子三角形;

areaTL84是32E、70、32F所组成的子三角形;

areaCWF是32D、70、32F所组成的子三角形;

如图7,计算落入到白区的每个像素点的权重。以58这点为例,其权重计算如下:

然后计算每个落入白区的R/G/B三通道加权值。

随后根据统计值,计算其白平衡增益:

      确定边界点和参考点后,需要进行一次三角剖分,定义为三角剖分1。当某白点像素落入到白区范围时,需要根据落入的点三角剖分1,再做一次三角剖分,直到所有落入到白区的点都计算了三角剖分得到相应的白平衡相关参数,最终输出统计值信息。如果点很多的话,三角剖分算法必须要优化,不然非常耗时。

  • 26
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值