一种判断图像是否偏暗或偏亮的方法和系统的制作方法_2

文档序号:8363995阅读:来源:国知局
的百分比,从而判断该图像是否偏暗。
[0048]所述的步骤1a中,主要是通过计算图像的每个像素点的初始亮度值与预设的期望亮度值之间的差值,并根据初始映射表以及所述的差值进行高斯分布计算生成初始亮度值与映射亮度值的亮度映射表;所述的初始映射表为一个256的数组,其值依次为O, I, 2,……255 ;该亮度映射表的计算公式为:
[0049]dist = (1-fExpect)*(1-fExpect);
[0050]pMapTable[i] = min(255, (0.5+255.0*exp (_dist/Sigma)));
[0051]其中,i为每个初始亮度值的序列;fExpeCt为期望亮度值,本实施例中,阴影区域的期望亮度值设为O ;dist为每个初始亮度值i与期望亮度值fExpect的差的平方;pMapTable[i]为初始亮度值i的对应映射亮度值;Sigma为σ ~2方差,σ为标准差,表示高斯分布的范围,本实施例中,Sigma默认为100*100*2。
[0052]所述的步骤20a中,通过进行映射处理得到映射亮度图的计算公式为:
[0053]maskLight = pMapTable[light];
[0054]其中,light为像素点的初始亮度值,pMapTable为所述的亮度映射表,maskLight为映射处理后得到的映射亮度图上对应像素点的映射亮度值。
[0055]所述的步骤30a中,通过进行正片叠底得到正片叠底亮度图的计算公式为:
[0056]mutabIeLight = ((maskLight*light+128)+(maskLight*light+128)/255)/255 ;
[0057]其中,light为像素点的初始亮度值,maskLight为映射处理后得到的映射亮度图上对应像素点的映射亮度值,mutableLight为正片叠底后得到的正片叠底亮度图上对应像素点的正片叠底亮度值。
[0058]所述的步骤30a中,还包括对所述的正片叠底亮度图进行模糊处理,得到模糊后的正片叠底亮度图,该模糊处理主要采用以下模糊算法的一种或一种以上的组合:中值模糊处理、高斯模糊处理、均值模糊处理、卷积处理。
[0059]中值模糊处理,即中值滤波处理,主要是对要处理的像素点周围的N*N模板像素点的亮度值进行从大到小或者从小到大的排序,得到排序后最中间的那个亮度值,即中位数,然后将该像素点的亮度值设置为其中位数的亮度值;其中,N为模糊的半径。
[0060]高斯模糊处理,主要是采用正态分布计算图像中每个像素的变换。
[0061]均值模糊处理是典型的线性滤波算法,它是指在图像上对目标像素给一个模板,该模板包括了其周围的临近像素;该临近像素是指以目标象素为中心的周围8个象素,构成一个滤波模板,即去掉目标象素本身;再用模板中的全体像素的平均值来代替原来像素值。
[0062]卷积处理:卷积是对矩阵中的每一个元素进行的操作,卷积所实现的功能是由其卷积核的形式决定的,卷积核是一个大小固定、有数值参数构成的矩阵,矩阵的中心为参考点或锚点,矩阵的大小称为核支撑;要计算一个像素点的卷积后的亮度值,首先将核的参考点定位到该像素点,核的其余元素覆盖矩阵中相对应的局部周围点;对于每一个核中的的像素点,得到这个像素点的值与卷积核数组中特定点的值的乘积并求所有这些乘积的累加和,即该特定点的卷积值,用这个结果替代该像素点的亮度值;通过在整个图像上移动卷积核,对图像的每个像素点重复此操作。
[0063]所述的步骤40a中的差值计算,主要是计算正片叠底亮度图的每个像素点的正片叠底亮度值与所述的期望亮度值的亮度差的绝对值。
[0064]所述的步骤50a中的阈值计算,主要是判断所述的亮度差的绝对值是否小于127,如果是的话,则该对应像素点属于阴影区域,并且阴影统计数值加I ;并对图像中所有属于阴影区域的像素点进行统计,得到最终的阴影统计数。
[0065]所述的步骤60a中,如果所述的阴影统计数占图像像素点总数的百分比大于40%,则该图像偏暗;该40%的百分比可根据需要或根据不同应用场合进行适当的调整,例如在有的场合可能阴影统计数占图像像素点总数的百分比超过35就判断为偏暗,有的场合可能超过45%才认为偏暗。
[0066]如图2所示,本发明还提供了一种判断图像是否偏暗的系统,该系统至少包括:
[0067]映射表创建模块Al,其通过创建初始映射表,并根据初始映射表对图像的每个像素点的初始亮度值进行高斯分布计算生成亮度映射表;
[0068]映射处理模块BI,其对图像的每个像素点的初始亮度值根据所述的亮度映射表进行映射处理得到映射亮度图;
[0069]正片叠底处理模块Cl,其将图像的每个像素点的初始亮度值与所述的映射亮度图的对应像素点的映射亮度值进行正片叠底得到正片叠底亮度图;
[0070]差值计算模块D1,其将所述的正片叠底亮度图的每个像素点的亮度值与初始亮度值进行差值计算;
[0071]分析统计模块E1,其对所述的每个像素点的差值进行阈值计算,判断当前像素点是否属于阴影区域,并对图像中所有属于阴影区域的像素点进行统计,得到阴影统计数;
[0072]判断模块F1,计算所述的阴影统计数占图像像素点总数的百分比,从而判断该图像是否偏暗。
[0073]本发明基于同一发明构思,还同时提出了一种判断图像是否偏亮的方法,该判定偏亮的方法与前述判断偏暗的方法的基本思路是相同的,其区别主要在于,判断偏暗的方法主要是对图像的阴影区域进行阴影统计数的计算来判断是否偏暗,判断偏亮的方法主要是对图像的高光区域进行高光统计数的计算来判断是否偏亮,在计算过程中,主要是阴影区域的期望亮度值为0,高光区域的期望亮度值为255,从而根据该不同的期望亮度值得出各自不同的亮度映射表、映射亮度图、正片叠底亮度图。
[0074]具体的,如图3所示,判断图像是否偏亮的方法包括以下步骤:
[0075]1b.创建初始映射表,并根据初始映射表对图像的每个像素点的初始亮度值进行高斯分布计算生成亮度映射表;
[0076]20b.对图像的每个像素点的初始亮度值根据所述的亮度映射表进行映射处理得到映射亮度图;
[0077]30b.将图像的每个像素点的初始亮度值与所述的映射亮度图的对应像素点的映射亮度值进行正片叠底得到正片叠底亮度图;
[0078]40b.将所述的正片叠底亮度图的每个像素点的亮度值与初始亮度值进行差值计算;
[0079]50b.对所述的每个像素点的差值进行阈值计算,判断当前像素点是否属于高光区域,并对图像中所有属于高光区域的像素点进行统计,得到高光统计数;
[0080]60b.计算所述的高光统计数占图像像素点总数的百分比,从而判断该图像是否偏亮。
[0081]所述的步骤1b中,主要是通过计算图像的每个像素点的初始亮度值与预设的期望亮度值之间的差值,并根据初始映射表以及所述的差值进行高斯分布计算生成初始亮度值与映射亮度值的亮度映射表;所述的亮度映射表的计算公式为:
[0082]dist = (1-fExpect)*(1-fExpect);
[0083]pMapTable[i] = min(255, (0.5+255.0*exp(_dist/Sigma)));
[0084]其中,i为每个初始亮度值的序列;fEXpeCt为期望
当前第2页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1