用于控制相机的曝光的系统及其方法_2

文档序号:9870704阅读:来源:国知局
统的构造示意图。
[0044]根据本发明的示例性实施方式的用于控制相机100的曝光的系统,包括直方图计算器200、直方图存储器300、虚拟直方图生成器400、第一临时直方图存储器500、第二临时直方图存储器600、直方图中断滤波器700、直方图均衡化单元800、以及最佳曝光设置单元900。
[0045]当从相机100输入图像数据时,直方图计算器200根据图像数据计算出直方图。
[0046]直方图存储器300存储由直方图计算器200计算出的直方图。在这种情况下,根据图像数据计算出的直方图称为原始直方图。
[0047]虚拟直方图生成器400基于在直方图存储器300中存储的原始直方图改变曝光,以生成针对各个曝光值的虚拟直方图。
[0048]直方图计算器200、虚拟直方图生成器400、直方图均衡化单元800及最佳曝光设置单元900可利用具有以下指令的处理器来实施,该指令使处理器执行以上定义的直方图计算器200、虚拟直方图生成器400、直方图均衡化单元800及最佳曝光设置单元900的功會K。
[0049]用于生成虚拟直方图的方法将在下文中参考图5A至5C进行叙述。此处,区间(bin,组)表示具有直方图值的各个段(slot,位置),并且bins表示直方图的台阶的数量。因此,bins可表不直方图最后一段的号码。
[0050]首先,通过将施加至原始直方图的曝光增大k倍来生成虚拟直方图。此处,k大于I的情况和k小于I的情况将分开讨论。
[0051 ] 图5A使出了饱和直方图。
[0052]参考图5A,假设通过将施加到原始直方图的曝光增大k倍生成虚拟直方图。G*bin的直方图值移动为round(k*bins)bin。在这种情况下,当超过bins值时,累积round (k*bins) bin的值。在该情况中,G是指像素值。例如,当像素值(亮度和暗度值)为256,并且k为2时,直方图的曝光增加为两倍,并且因此256变为了 512。在该情况中,在超出256的257处的值512用256、即bins值来累加。
[0053]同时,k小于I的情况可分成:临时直方图round(k*bins)的值小于(bins-round(k*bins) *histogram(bins_l))的值的情况以及临时直方图round(k*bins)的值大于(bins-round(k*bins) ^histogram(bins-1))的值的情况。此处,round(k*bins)是指曝光 k 次的直方图的bins值,且histogram(bins-1)指直方图的最后一个bin的前一个数值,并且round(k*G)指通过将全部像素值与曝光因子相乘而得到的值。
[0054]图5B为当k小于I时,临时直方图round (k*bins)的值小于(bins-round (k*bins)*histogram(bins-1))的情况下的虚拟直方图的示例性示意图。图5C为当k小于I时,临时直方图 round(k*bins)的值大于(bins_round(k*bins)*histogram(bins-l))的情况下的虚拟直方图的示例性示意图。
[0055]参考图5B,在临时直方图round(k*bins)的值已饱和且k小于I的情况下,当临时直方图 round(k*bins)的值小于(bins-round(k*bins)^histogram(bins-1)),则用histogram (bins-1)的值填充临时直方图round (k*bins)的值,以与round (k*bins)的值相等。例如,当存在一个直方图具有256个像素值,本例中k值为0.5,像素值为256*0.5,并且因此像素值变为128,使得缺少了 128个像素值。因此,通过利用hist0gram(bins-l)填充仅在最终直方图之前且在被包含之前的直方图,并且从129至256利用像素值填充直方图来生成具有总共256个像素值的虚拟直方图。
[0056]bins是bin的数量,也是直方图与最大亮度对应的最大bin值。临时直方图round(k*bins)表示原始直方图的最大亮度由于小于I的曝光因子下降了多少。因此,临时直方图round(k*bins)指由于小于I的曝光因子,饱和直方图值移动至临时直方图的round(k*bins)。此处,因为实际的灰度值未知,所以即使饱和值由于曝光而移动,该值也是无意义的。与此同时,在有意义的值中,最高水平值是histogram (bins-1),该值为刚好在原始直方图饱和之前的值。即使该值由于k而减小,但该值也是物理上合理的。因此,通过使用该值,以虚拟直方图上大于临时直方图round (k*bins)的bins生成虚拟直方图值。当所有的bins移动、增大k倍时,在临时直方图上的round(k*bins)之后的bins即被清空。但是,因为直方图的饱和意味着后面还可能存在数值,所以被清空的bins也要填满,且生成的直方图的值之和也要与饱和值相等。
[0057]bins 和 round(k*bins)之间的差值为(bins-round(k*bins)+1)个待填充的点。当空点用上述histogram(bins-l)填充时,被填充的点的总和变为(bins-round(k*G)*histogram(bins-1))。进一步,比较被填充的点的总和是否大于或者小于临时histogram (round (k*bins)),即实际饱和值。
[0058]当总和大于饱和值时,需被填充直到总和与饱和值相等为止的点被填充,并且当总和小于饱和值时,不足的值即使在被填充后也需要被添加到临时histogram (bins)。
[0059]参考图5C,在k小于I的情况下,当临时直方图round(k*bins)的值大于(bins-round(k*bins)^histogram(bins-1))时,临时直方图 round(k*bins)的值用histogram(bins-Ι)的值填充,以与round(k*bins)的值相等,而不足部分添加到bins值。即,图5C示出了即使临时直方图的空位置都被hist0gram(bins-l)填充,也不设定所有的饱和值的情况。
[0060]因为当曝光在已饱和状态中下降时,不知道饱和的像素如何反应,所以刚好未被饱和之前的直方图值可用histogram(bins-Ι)填充一次,但是该值的不足部分仍需要再次饱和。
[0061]当直方图对曝光因子响应而延展时,如此生成的虚拟直方图具有其中不存在值的中断。例如,当原始直方图的曝光增加一倍,如图6A所示时,如图6B所示,在1、3、5灰度生成其中不存在值的中断。
[0062]因此,直方图中断滤波器700对虚拟直方图进行中断滤波,以生成第一临时直方图和第二临时直方图,并根据第一临时直方图和第二临时直方图生成最终直方图。在这种情况中,为方便起见,本发明的示例性实施方式公开了以下实施例,其中生成了第一个临时直方图和第二临时直方图,即两个临时直方图,但是临时直方图的数量并不限制在两个,且因此可生成η个临时直方图。
[0063]例如,如图7Α所示,假设存在具有中断的虚拟直方图。
[0064]当第k个bin为“O”时,直方图中断滤波器700采用左侧值,增加图7A的虚拟直方图的k,以生成如图7B所示的第一临时直方图。
[0065]同时,当第k个bin为“O”时,直方图中断滤波器700采用右侧值,降低图7A的虚拟直方图的k,以生成如图7C所示的第二临时直方图。
[0066]接下来,当第一临时直方图和第二临时直方图中的任何一个值为“O”时,直方图中断滤波器700选择“O”值,而当第一临时直方图和第二临时直方图均不为“O”时,选择并存储第一临时直方图和第二临时直方图的均值,以生成如图7D所示的最终直方图。
[0067]接下来,因为所有bins的总和相同,直方图中断滤波器700直至bins-Ι将值增加到Ι/k倍。
[0068]第一临时直方图存储器500存储虚拟直方图和第一临时直方图,而第二临时直方图存储器600存储第二临时直方图。在这种情况中,本发明的示例性实施方式公开了两种临时直方图存储器,例如第一临时直方图存储器500和第二临时直方图存储器600,但并不仅限于此。因此,临时直方图存储器的数量可能根据临时直方图的数量改变
当前第2页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1