【技术实现步骤摘要】
本专利技术涉及一种对谷歌眼镜图像过度曝光的校正方法,属于计算机图像处理
技术介绍
随着科技进步,越来越多的智能设备上配置了摄像头,比如手机、平板、甚至现在正处于发展阶段的可穿戴智能设备,比如GoogleGlass。随着这些智能设备在人们生活中的普及,人们对设备所能提供的摄像质量也有了越来越高的要求。在日常的摄影中,比较常见的问题就是曝光不足和过度曝光这两种情况所带来的图片细节的丢失。在数码摄像中,曝光量指的是到达摄像头感应器的光量。理想的曝光情况是最后得到的图像能准确地反映实际场景或者物体的实际样子。但由于一般的摄像头所能捕捉到的亮度动态范围很有限,因此在不理想的光照条件下可能会出现图像曝光过度或者不足等现象。图像的过度曝光意味着在一些过亮的区域会出现一些细节的丢失,导致那些区域呈现出全白或者褪色的效果。这也可以称之为图像的饱和或者过饱和现象。这种现象主要出现在图像的感应器没有办法捕捉到正确的曝光量的时候,因为此时场景中部分区域的亮度动态范围会高于摄像头感应器有限的动态范围(或者叫曝光范围)。动态范围的定义是场景里最大亮度和最小亮度之间的比例。日常生活中很多强光下的场景都具有很大的亮度动态范围,并远远超过了一般图像感应器所能接受的范围。例如,一般摄像头的亮度动态范围是103:1,而室外太阳光直射下的场景或室内高强度灯直射下的区域的亮度动态范围一般是从105:1到109:1的。当用低亮度动态范围的摄像设备去记录这样高亮度动态范围的场景,场景中的一些亮的部分就会因为曝光量过度而在图像中呈现全白或者褪色的样子。换句话来说,这些过度曝光的像素点的亮度值 ...
【技术保护点】
一种对谷歌眼镜图像过度曝光的校正方法,其特征在于该方法包括以下步骤:(1)对过度曝光的谷歌眼镜图像进行直方图均衡化,具体包括以下步骤:(1‑1)计算过度曝光的谷歌眼镜图像的直方图:利用下式计算过度曝光的谷歌眼镜图像的直方图概率分布Pr(rk):Pr(rk)=nkN]]>其中,N为一幅过度曝光的谷歌眼镜图像中的像素点总数,nk表示直方图中第k灰度级中像素点的个数,rk表示直方图中第k灰度级,Pr(rk)表示第k灰度级的直方图概率分布;(1‑2)对上述步骤(1‑1)中的直方图概率分布进行改写,得到与上述灰度级rk相对应的新直方图概率分布数值Pr'(rk):Pr′(rk)=Pr(rk)]]>其中,对步骤(1‑1)中的每一个灰度级对应的概率分布数值进行开根号处理;(1‑3)根据上述步骤(1‑2)的新直方图概率分布数值,利用下式计算过度曝光的谷歌眼镜图像的直方图的累积分布函数,从而得到过度曝光的谷歌眼镜图像的直方图的原始灰度级rk和新灰度级r'k的映射关系:Sr(rk)=Sr(rk‑1)+Pr'(rk)其中,Sr(rk)表示过度曝光的谷歌眼镜图像中从第一个直方图灰度级到第rk直方图灰 ...
【技术特征摘要】
1.一种对谷歌眼镜图像过度曝光的校正方法,其特征在于该方法包括以下步骤:(1)对过度曝光的谷歌眼镜图像进行直方图均衡化,具体包括以下步骤:(1-1)计算过度曝光的谷歌眼镜图像的直方图:利用下式计算过度曝光的谷歌眼镜图像的直方图概率分布Pr(rk):Pr(rk)=nkN]]>其中,N为一幅过度曝光的谷歌眼镜图像中的像素点总数,nk表示直方图中第k灰度级中像素点的个数,rk表示直方图中第k灰度级,Pr(rk)表示第k灰度级的直方图概率分布;(1-2)对上述步骤(1-1)中的直方图概率分布进行改写,得到与上述灰度级rk相对应的新直方图概率分布数值Pr'(rk):Pr′(rk)=Pr(rk)]]>其中,对步骤(1-1)中的每一个灰度级对应的概率分布数值进行开根号处理;(1-3)根据上述步骤(1-2)的新直方图概率分布数值,利用下式计算过度曝光的谷歌眼镜图像的直方图的累积分布函数,从而得到过度曝光的谷歌眼镜图像的直方图的原始灰度级rk和新灰度级r'k的映射关系:Sr(rk)=Sr(rk-1)+Pr'(rk)其中,Sr(rk)表示过度曝光的谷歌眼镜图像中从第一个直方图灰度级到第rk直方图灰度级的累积分布概率,设定新灰度图的灰度级个数为255,则基于累积分布概率得到最后输出图像的新灰度级如下:r'k=cvRound(255*Sr(rk)+0.5)上式中,cvRound(·)表示取整函数,r'k表示过度曝光的谷歌眼镜图像的直方图原始灰度级为rk所对应的新灰度级;(1-4)根据上述步骤(1-3)得到的原始灰度级和新灰度级的映射关系,得到过度曝光的谷歌眼镜图像的新直方图,并通过新直方图输出处理后的过度曝光的谷歌眼镜图像;(2)在色调饱和度亮度色彩空间内对上述步骤(1)得到的谷歌眼镜图像的I分量进行亮度修正,具体包括以下步骤:(2-1)对谷歌眼镜图像从红绿蓝色彩空间到色调饱和度亮度色彩空间的转换,包括以下步骤:(2-1-1)利用下式计算上述步骤(1)得到的谷歌眼镜图像中的每个像素点(i,j)的色调H分量:H=θB≤G360-θB>G]]>其中,B是上述步骤(1)得到的谷歌眼镜图像的蓝色分量值,G是上述步骤(1)得到的谷歌眼镜图像的绿色分量值;(2-1-2)步骤(2-1-1)的色调H分量公式中θ的求值公式如下:θ=arccos(12[(R-G)+(R-B)](R-G)3+(R-B)(G-B))]]>其中,R是上述步骤(1)得到的谷歌眼镜图像的红色分量值,B是上述步骤(1)得到的谷歌眼镜图像的蓝色分量值,G是上述步骤(1)得到的谷歌眼镜图像的绿色分量值;(2-1-3)利用下式计算上述步骤(1)得到的谷歌眼镜图像中每个像素点(i,j)的饱和度S分量:S=1-3(R+G+B)[min(R,G,B)]]]>其中,R是上述步骤(1)得到的谷歌眼镜图像的红色分量值,B是上述步骤(1)得到的谷歌眼镜图像的蓝色分量值,G是上述步骤(1)得到的谷歌眼镜图像的绿色分量值;(2-1-4)利用下式计算上述步骤(1)得到的谷歌眼镜图像中每个像素点(i,j)的亮度I分量:I=13(R+G+B)]]>其中,R是上述步骤(1)得到的谷歌眼镜图像的红色分量值,B是上述步骤(1)得到的谷歌眼镜图像的蓝色分量值,G是上述步骤(1)得到的谷歌眼镜图像的绿色分量值;(2-2)利用上述步骤(2-1)计算得到的谷歌眼镜图像中每个像素点的色调H、饱和度S、亮度I分量值,对谷歌眼镜图像的亮度I分量进行调整,具体包括如下步骤:(2-2-1)利用下式等距压缩谷歌眼镜图像中所有像素点亮度I分量值的分布区间:I′i=0.5+(Ii-0.5)*μ1ifIi>0.50.5-(0.5-Ii)*μ2ifIi≤0.5]]>其中,Ii表示图像中第i像素点的原始亮度值,I'i表示图像中第i像素点压缩或提高后的新亮度值。μ1表示当图像中像素点亮度值Ii大于0.5时的压缩因子,而μ2表示当图像中像素点亮度值Ii小于0.5时的提升因子,此处取μ1=0.75,μ2=0.8;(2-2-2)利用下式整体降低谷歌眼镜图像中所有像素点亮度I分量值的波动,首先计算出谷歌眼镜图像所有像素点亮度值的总体均值I'mean,然后再分别计算每个像素点经过步骤(2-2-1)处理后得到的新亮度值Ii'和总体均值I'mean之间的差值,再在这些差值的基础上求出总体的波动因子dif,计算公式如下:dif=(Σ|I′i-I′mean|N)μ3]]>根据上式,求dif的过程具体分为以下三步:(2-2-2-1)分别对每个像素点的亮度值Ii'和亮度总体均值I'mean之间求差值,然后将这些差值相加得到总和∑|I'i-I'mean|;(2-2-2-2)对(2-2-2-1)中得到的所有像素点对应的亮度差值求平均值,得到所有像素点亮度差值的平均值为其中N表示像素点总数;(2-2-2-3)对(2-2-2-2)中得到的亮度差值平均值进行一定的压缩,最后得到总体波动因子dif,此处μ3为压缩因子,表示对亮度差值平均值的压缩程度,取μ3=2;(2-2-3)在得到总体波动因子dif后,根据每个像素点的亮度值Ii'和总体亮度均值I'mean之间的差值大小分别对每个像素点的亮度值Ii'做如下处理:I′′i=I′i+dififI′i+dif<I′meanI′i-dififI′i-dif>I′meanI′iotherwise]]>其中,I'i为谷歌眼镜图像中第i像素点在第(2-2-1)步处理后得到的亮度值,I”i为谷歌眼镜图像中第i像素点在第(2-2-3)步处理后得到的最终亮度值;如果谷歌眼镜图像中第i像素点的亮度值I'i加上总体波动因子dif后不大于总体亮度均值I'mean,该像素点的最终亮度值I”i=I'i+dif;反之,如果谷歌眼镜图像中第i像素点的亮度值I'i减去总体波动因子dif后不小于总体亮度均值I'mean,该像素点的最终亮度值I”i=I'i-dif;其他情况下I”i=I'i不变;(2-3)亮度I分量经过步骤(2-2)处理后的谷歌眼镜图像从HSI色彩空间到RGB色彩空间的转换:将经过步骤(2-2)处理后的谷歌眼镜图像的新的亮度I分量I”、色调H分量和饱和度S分量合并后得到新的HSI图,由于最后输出的图像应该是RGB图,因此输出最终谷歌眼镜图像前需要将新的HSI图转换成对应的RGB图;首先将代表谷歌眼镜图像色调H的横截面分为三个相隔120°的扇区,然后根据色调H的值在不同扇区的分布情况分别进行如下计算:(2-3-1)RG扇区,0°≤H<120°,当H分量位于该扇区里时,对应的谷歌眼镜图像新的R、G、B三个通道的值R’、G’、B’分别可以用如下公式计算得到:B'=I”(1-S)R′=I′′[1+S·cosHcos(600-H)]]]>G'=3I”-(R'+B')其中,I”是经过步骤(2-2)处理后的谷歌眼镜图像的新的亮度I分量,R’是经过步骤(2-2)处理后的谷歌眼镜图像对应的新的红色分量值,B’是经过步骤(2-2)处理后的谷歌眼镜图像对应的新的蓝色分量值,G’是经过步骤(2-2)处理后的谷歌眼镜图像对应的新的绿色分量值;(2-3-2)GB扇区,120°≤H<240°,当H分量位于该扇区里时,在计算谷歌眼镜图像新的R、G、B三个通道的值前先要对H分量的值做如下处理得到新的H’:H'=H-120°然后,对应的谷歌眼镜图像新的R、G、B三个通道的值R’、G’、B’分别可以用如下公式计算得到:R'=I”(1-S)B'=3I”-(R'+G')(2-3-3)BR扇区,240°≤H<360°,当H分量位于该扇区里时,在计算谷歌眼镜图像新的R、G、B三个通道的值前先要对H分量的值做如下处理得到新的H’:H'=H-240°然后,对应的谷歌眼镜图像新的R、G、B三个通道的值R’、G’、B’分别可以用如下公式计算得到:G'=I”(1-S)R'=3I”-(G'+B')(2-4)亮度I分量经过整体调整后的图像对应的HSI图转换成RGB图后就可以得到经过全局算法修复过后的过度曝光谷歌眼镜图像;(3)基于CIELAB色彩空间对经过步骤(2)处理后得到的谷歌眼镜图像中依然过度曝光严重的区域进行局部亮度恢复,具体包括如下步骤:(3-1)对经过步骤(2)处理后得到的谷歌眼镜图像进行RGB色彩空间到CIELAB色彩空间的转换,转换过程分为如下两个步骤:(3-1-1)RGB转XYZ:设r、g、b分别代表经过步骤(2)处理后得到的谷歌眼镜图像中每个像素点(i,j)对应的R、G、B通道初始值,取值范围为[0,255],而r’、g’、b’分别表示经过这一步转换后得到的新值,转换的计算公式如下:r′=gamma(r255.0)g′=gamma(g255.0)b′=gamma(b255.0)]]>其中gamma函数是用于对图像进行非线性色调编辑的,它的目标在于对原始色彩分量的值进行校正,并提高图像的对比度,公式的作用如下:gamma(x)=(x+0.0551.055)2.4x>0.04045x12.92x<=0.04045]]>在利用gamma函数对谷歌眼镜图像中每个像素点(i,j)对应的R、G、B通道初始值r、g、b进行处理后,可以进一步通过对R、G、B通道此时的新值r’、g’、b’进行进一步的处理来得到所要求的X、Y、Z的值,其中进一步处理对应的转换公式如下:XYZ=M*r′g′b′]]>其中,矩阵M如下:M=0.41240.35760.18050.21260.71520.07220.01930.11920.9505]]>将矩阵M代入后,转换过程相当于如下公式:X=r'*0.4124+g'*0.3576+b'*0.1805Y=r'*0.2126+g'*0.7152+b'*0.0722Z=r'*0.0193+g'*0.1192+b'*0.9505(3-1-2)XYZ转LAB:通过对谷歌眼镜图像中每个像素点(i,j)对应的X、Y、Z的值进行进一步转换得到L*、a*、b*的值,转换的计算公式如下:L*=116f(Y/Yn)-16a*=500[f(X/Xn)-f(Y/Yn)]b*=200[f(Y/Yn)-f(Z/Zn)]其中,Xn、Yn、Zn一般默认值为95.047、100.0、108.883,而上面计算公式中出现的f函数如下:f(t)=t1/3t>(629)313(296)2t+429t<=(629)3]]>此处计算得到的L*、a*、b*的值就是步骤(2)处理后得到的谷歌眼镜图像进行RGB色彩空间到CIELAB色彩空间转换后对应的LAB色彩空间三个通道的值;(3-2)检测步骤(2)处理后得到的谷歌眼镜图像中依然过度曝光严重的区域:定义一个过度曝光映射矩阵M来记录谷歌眼镜图像中每个像素点被过度曝光影响的严重程度。谷歌图像第i个像素点在矩阵M对应的Mi值计算公式如下:Mi=12(tanh(δ*((Li-LT)+(CT-||Ci||2)))+1)]]>其中,Li代表了谷歌图像第i个像素点对应的L*值,Ci代表了谷歌图像第i个像素点对应的向量(a*,b*)T,LT和CT代表了谷歌眼镜图像中过度曝光区域像素点所能取的边界值,当LT和CT的值都等于过度曝光区域边界值时,M的值等于0.5;δ=1/60,LT=80,CT=4...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。