亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種數(shù)字圖像的快速美容方法

文檔序號(hào):6627873閱讀:276來源:國知局
一種數(shù)字圖像的快速美容方法
【專利摘要】一種數(shù)字圖像的快速美容方法,通過對原始圖像進(jìn)行高斯模糊處理,提取綠色通道值,對綠色通道值進(jìn)行線性光混合、強(qiáng)光混合,并重新計(jì)算混合后的綠色通道值,同時(shí)對原始圖像進(jìn)行皮膚識(shí)別與美白處理,最后將重新計(jì)算的綠色通道值與皮膚識(shí)別得到的概率值相乘的積作為透明度,對原始圖像與美白圖像進(jìn)行透明度混合形成美容圖像;本發(fā)明的圖像美容方法不僅高效而且美容效果好,可以廣泛應(yīng)用于圖像處理領(lǐng)域,可利用在目前的個(gè)人電腦或者是手機(jī)、平板等平臺(tái)上的圖像后期處理軟件中,也可以用在帶數(shù)碼攝像頭的一些設(shè)備的相機(jī)實(shí)時(shí)濾鏡中;并且通過對原始圖像進(jìn)行膚色識(shí)別,使算法不對黑色像素進(jìn)行處理,從而保留了頭發(fā)、眼睛等關(guān)鍵部位不被處理,使得整個(gè)美容的效果更佳、更自然。
【專利說明】一種數(shù)字圖像的快速美容方法

【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種圖像處理方法,特別是一種數(shù)字圖像的快速美容方法。

【背景技術(shù)】
[0002]隨著科技的進(jìn)步,越來越多載有高清或者微型攝像頭或者圖像獲取裝置的設(shè)備出現(xiàn)。如數(shù)碼相機(jī),手機(jī),平板,甚至是筆記本等等。無論是攝像設(shè)備的像素、光圈或者是拍攝環(huán)境的光線、平穩(wěn)度甚至是設(shè)備的I/o性能等都會(huì)對成像質(zhì)量造成影響,帶來的結(jié)果是成像與現(xiàn)實(shí)世界真實(shí)畫面有差距。這種差距可能與設(shè)備使用者的意愿相違背,或者是達(dá)不到使用者的美觀要求。由此衍生出來的各種圖像后期處理軟件,通過能圖像進(jìn)行色彩上的處理,使得圖像在視覺上達(dá)到相比原始圖像更加符合使用者審美觀的效果。
[0003]但是許多處理方式由于在圖像的智能檢測方面做的不到位,或者處理方法不正確或者是處理過程復(fù)雜,耗時(shí)太久而造成圖像達(dá)不到使用者要求,甚至是使處理后的圖像往“丑”的方向進(jìn)一步發(fā)展。
[0004]綜上所述,目前的一些對圖像美容方面的技術(shù)還遠(yuǎn)不能滿足人們的需要,開發(fā)一種高效、有效的美容方法很有必要。


【發(fā)明內(nèi)容】

[0005]本發(fā)明為解決上述問題,提供了一種效率較高的并且效果明顯的數(shù)字圖像的快速美容方法,可很大程度上對圖像進(jìn)行美化,使得圖像更加符合使用者的審美觀念,并且通過對原始圖像進(jìn)行膚色識(shí)別,使算法不對黑色像素進(jìn)行處理,從而保留了頭發(fā)、眼睛等關(guān)鍵部位不被處理,使得整個(gè)美容的效果更佳、更自然。
[0006]為實(shí)現(xiàn)上述目的,本發(fā)明采用的技術(shù)方案為:
[0007]—種數(shù)字圖像的快速美容方法,其特征在于,包括以下步驟:
[0008]步驟1.從本地或遠(yuǎn)程讀取原始圖像;
[0009]步驟2.對原始圖像進(jìn)行高斯模糊處理,得到模糊圖像;
[0010]步驟3.依次提取原始圖像單個(gè)像素的綠色通道值G,該綠色通道與所述模糊圖像的對應(yīng)像素進(jìn)行線性光混合,得到第一綠色通道值Gl ;
[0011]步驟4.所述經(jīng)過線性光混合后的第一綠色通道值Gl與其自身Gl進(jìn)行連續(xù)的強(qiáng)光混合,得到第二綠色通道值G2 ;
[0012]步驟5.將第二綠色通道值G2與高斯模糊后的紅色通道值R和藍(lán)色通道值B相結(jié)合,計(jì)算出第三綠色通道值G3 ;
[0013]步驟6.對原始圖像進(jìn)行顏色映射,得到美白圖像;
[0014]步驟7.對原始圖像進(jìn)行膚色識(shí)別,得到對應(yīng)的膚色概率值;
[0015]步驟8.以所述第三綠色通道值G3與對應(yīng)的膚色概率值相乘得到的積作為透明度,對原始圖像與所述美白圖像進(jìn)行透明度混合,形成美容圖像。
[0016]作為優(yōu)選,所述步驟3中線性光混合的公式為:
[0017]Gl = (2*G_2*fg+l)/2
[0018]其中,Gl是指單個(gè)像素經(jīng)過線性光混合后的綠色通道的顏色值,G是指單個(gè)像素的原始圖像的綠色通道的顏色值,fg是指步驟2中高斯模糊后的圖像中對應(yīng)相同位置的像素的綠色通道的顏色值。
[0019]作為優(yōu)選,所述步驟4中的連續(xù)的強(qiáng)光混合,其連續(xù)次數(shù)為I至10次。
[0020]作為優(yōu)選,所述步驟4中強(qiáng)光混合的公式為:
[0021]resultColor = ((base) <=128? (base)*(base)/128:255-(255-(base))*(255-(base) )/128)
[0022]其中,resultColor為強(qiáng)光計(jì)算后的結(jié)果,base為步驟3中線性光混合計(jì)算后得到的G1。
[0023]作為優(yōu)選,所述步驟5中的計(jì)算方法為:
[0024]if (Red < 0.5)
[0025]{
[0026]alphaValue = 1.0- (0.5-Red) *2.0 ;
[0027]}
[0028]Else
[0029]{
[0030]alphaValue =1.0;
[0031]}
[0032]G3 = G2*max(0.0, alphaValue_Blue*0.0019608);
[0033]其中,G3為第三綠色通道值,G2的初始值為所述步驟4中強(qiáng)光混合計(jì)算的結(jié)果,Red為高斯模糊后的紅色通道的值,Blue為高斯模糊后的藍(lán)色通道的值。
[0034]作為優(yōu)選,所述步驟6中,對原始圖像進(jìn)行顏色映射,得到美白圖像;其中,顏色映射的公式為:
[0035]oralColor = arrayCurve[oralColor];
[0036]其中arrayCurve為預(yù)定的一組顏色映射,oralColor為原始圖像中單個(gè)像素的紅色通道、綠色通道、藍(lán)色通道的顏色值。
[0037]作為優(yōu)選,所述的步驟7中對原始圖像進(jìn)行膚色識(shí)別,得到對應(yīng)的膚色概率值,進(jìn)一步包括以下步驟:
[0038]步驟71.對圖像進(jìn)行人臉識(shí)別,獲取人臉區(qū)域;
[0039]步驟72.對所述的人臉區(qū)域進(jìn)行均值計(jì)算,獲取平均膚色;
[0040]步驟73.根據(jù)所述的平均膚色計(jì)算當(dāng)前圖像的膚色概率映射表;
[0041]步驟74.根據(jù)所述的膚色概率映射表對當(dāng)前圖像進(jìn)行膚色識(shí)別,并獲得當(dāng)前圖像的膚色概率值。
[0042]作為優(yōu)選,所述的步驟72進(jìn)一步包括:
[0043]步驟721.初始化原始皮膚模型;
[0044]步驟722.計(jì)算整個(gè)圖像的顏色均值,作為初始皮膚的閾值;
[0045]步驟723.根據(jù)獲取得的初始皮膚的閾值計(jì)算人臉區(qū)域的平均膚色。
[0046]作為優(yōu)選,所述的步驟722進(jìn)一步包括:
[0047]步驟7221.遍歷整個(gè)圖像的像素點(diǎn),將紅色通道、綠色通道、藍(lán)色通道的顏色值累力口,得到顏色累加和;
[0048]步驟7222.將顏色累加值除以像素點(diǎn)的總數(shù),得到紅色通道、綠色通道、藍(lán)色通道的均值,作為初始皮膚的閾值。
[0049]作為優(yōu)選,所述的步驟723進(jìn)一步包括:
[0050]步驟7231.根據(jù)如下公式計(jì)算平均膚色的黑白值:
[0051]GRAY I = 0.299*RED+0.587*GREEN+0.114*BLUE
[0052]其中,GRAYl為灰度圖的當(dāng)前像素點(diǎn)的灰度值;RED、GREEN、BLUE分別為圖像的當(dāng)前像素點(diǎn)的紅、綠、藍(lán)通道的顏色值;
[0053]步驟7232.將所述的黑白值作為閾值,用來排除人臉區(qū)域非皮膚的部分;
[0054]步驟7233.依次遍歷人臉區(qū)域里的像素點(diǎn)的顏色值,根據(jù)如下公式獲得平均膚色:
[0055]skin = SkinModel[red][blue];
[0056]其中,skin為經(jīng)過皮膚模型的顏色映射后的皮膚值;SkinModel為初始化原始皮膚模型;red為紅色通道的顏色值;blue為藍(lán)色通道的顏色值。
[0057]作為優(yōu)選,所述的步驟73中根據(jù)所述的平均膚色計(jì)算當(dāng)前圖像的膚色概率映射表,所述的膚色概率映射表通過如下步驟獲取:
[0058]步驟731.創(chuàng)建膚色概率映射表,大小為256*256 ;
[0059]步驟731.依次對膚色概率映射表進(jìn)行賦值,具體偽代碼如下;
[0060]預(yù)設(shè)臨時(shí)變量1、j、SkinRed_Left、AlphaValue、Offset、TempAlphaValue、OffsetJ為整數(shù)類型;
[0061]膚色概率映射表的變量為SkinProbability[256] [256];
[0062]SkinRed為步驟7222計(jì)算得到的紅色通道的均值;SkinBlue為步驟7222計(jì)算得到的藍(lán)色通道的均值;
[0063]預(yù)設(shè)SkinRed_Left 的值,計(jì)算公式為:SkinRed_Left = SkinRed-128 ;
[0064]For(i = O ;i < 256 ;i++)
[0065]{
[0066]計(jì)算Offset 的值,公式為 Offset = max (0, min (255, i_SkinRed_Left));
[0067]判斷Offset的值是否小于128,如果小于的,話則AlphaValue = 0ffset*2 ;如果大于等于128的話,則AlphaValue = 255 ;
[0068]For(j = O ;j < 256 ;j++)
[0069]{
[0070]計(jì)算OffsetJ 的值,公式為 OffsetJ = max (O, j-SkinBlue);
[0071]計(jì)算TempAlphaValue 的值,公式為 TempAlphaValue =max (AlphaValue-(OffsetJ*2),0);
[0072]判斷TempAlphaValue 的值。如果大于 160 的話,則 SkinProbability [i] [j]的值為 255 ;
[0073]如果小于90的話,則SkinProbability [i] [j]的值為0;否貝丨JSkinProbability[i] [j]的值為 TempAlphaValue+30 ;
[0074]}
[0075]}
[0076]。
[0077]作為優(yōu)選,所述的步驟74中根據(jù)所述的膚色概率映射表對當(dāng)前圖像進(jìn)行膚色識(shí)另IJ,并獲得當(dāng)前圖像的膚色概率值,計(jì)算方法如下:
[0078]skinColor = SkinProbability[red][blue];
[0079]其中,skinColor為當(dāng)前圖像的膚色概率值;SkinProbability為膚色概率映射表;red為像素點(diǎn)的紅色通道的顏色值;blue為像素點(diǎn)的藍(lán)色通道的顏色值。
[0080]作為優(yōu)選,所述的步驟71中對圖像進(jìn)行人臉識(shí)別,獲取人臉區(qū)域,當(dāng)人臉區(qū)域識(shí)別失敗時(shí),則將整個(gè)圖像定義為人臉區(qū)域。
[0081]作為優(yōu)選,所述步驟8中以所述第三綠色通道值G3與對應(yīng)的膚色概率值相乘得到的積作為透明度將原始圖像與所述美白圖像進(jìn)行透明度混合的公式如下:
[0082]resultColor = oralColor*alpha+(1.0-alpha)^arrayColor ;
[0083]其中resultColor為處理后的美容圖像的顏色值;oralColor為原始圖像的顏色值;arrayColor為步驟6中得到的美白圖像的顏色值;alpha為步驟5中得到的G3進(jìn)行歸一化的值乘以其對應(yīng)的膚色概率值得到的積,所述歸一化即做以下公式:G3/255.0。
[0084]本發(fā)明的有益效果如下:
[0085]本發(fā)明可以廣泛應(yīng)用于圖像處理領(lǐng)域,可用在目前的個(gè)人電腦或者是手機(jī)、平板等平臺(tái)上的圖像后期處理軟件中,也可以用在帶數(shù)碼攝像頭的一些設(shè)備的相機(jī)實(shí)時(shí)濾鏡中??傮w來說,可以根據(jù)軟件設(shè)計(jì)者的意愿用于不同的圖像處理軟件領(lǐng)域。并且通過對原始圖像進(jìn)行膚色識(shí)別,并以所述第三綠色通道值G3與膚色識(shí)別所得到的對應(yīng)的膚色概率值相乘得到的積作為透明度將原始圖像與所述美白圖像進(jìn)行透明度混合,從而形成美容圖像,使算法不對黑色像素進(jìn)行處理,從而保留了頭發(fā)、眼睛等關(guān)鍵部位不被處理,使得整個(gè)美容的效果更佳、更自然。

【專利附圖】

【附圖說明】
[0086]此處所說明的附圖用來提供對本發(fā)明的進(jìn)一步理解,構(gòu)成本發(fā)明的一部分,本發(fā)明的示意性實(shí)施例及其說明用于解釋本發(fā)明,并不構(gòu)成對本發(fā)明的不當(dāng)限定。在附圖中:
[0087]圖1為本發(fā)明數(shù)字圖像的快速美容方法的具體流程圖。

【具體實(shí)施方式】
[0088]為了使本發(fā)明所要解決的技術(shù)問題、技術(shù)方案及有益效果更加清楚、明白,以下結(jié)合附圖及實(shí)施例對本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
[0089]如圖1所示,本發(fā)明的一種數(shù)字圖像的快速美容方法,其特征在于,包括以下步驟:
[0090]步驟1.從本地或遠(yuǎn)程讀取原始圖像;
[0091]步驟2.對原始圖像進(jìn)行高斯模糊處理,得到模糊圖像;
[0092]步驟3.依次提取原始圖像單個(gè)像素的綠色通道值G,該綠色通道與所述模糊圖像的對應(yīng)像素進(jìn)行線性光混合,得到第一綠色通道值Gl ;
[0093]步驟4.所述經(jīng)過線性光混合后的第一綠色通道值Gl與其自身Gl進(jìn)行連續(xù)的強(qiáng)光混合,得到第二綠色通道值G2 ;
[0094]步驟5.將第二綠色通道值G2與高斯模糊后的紅色通道值R和藍(lán)色通道值B相結(jié)合,計(jì)算出第三綠色通道值G3 ;
[0095]步驟6.對原始圖像進(jìn)行顏色映射,得到美白圖像;
[0096]步驟7.對原始圖像進(jìn)行膚色識(shí)別,得到對應(yīng)的膚色概率值;
[0097]步驟8.以所述第三綠色通道值G3與對應(yīng)的膚色概率值相乘得到的積作為透明度,對原始圖像與所述美白圖像進(jìn)行透明度混合,形成美容圖像。
[0098]步驟2中的高斯模糊是用正態(tài)分布計(jì)算圖像中每個(gè)像素的變換,
[0099]在N維空間的正態(tài)分布方程為:
[0100]C?|r) =....................-................................................................—ζ~* 扉*.I
[0101]在二維空間的正態(tài)分布方程為:

J1.\? -.!*.
[0102]CIitI, P) =
% - #
[0103]其中r是模糊半徑r2 = u2+v2, σ是正態(tài)分布的標(biāo)準(zhǔn)偏差,u是原像素點(diǎn)在χ軸上的位置偏移值,V是原像素點(diǎn)在y軸上的位置偏移值。
[0104]步驟3中線性光混合的公式為:
[0105]Gl = (2*G_2*fg+l)/2
[0106]其中,Gl是指單個(gè)像素經(jīng)過線性光混合后的綠色通道的顏色值,G是指單個(gè)像素的原始圖像的綠色通道的顏色值,fg是指步驟2中高斯模糊后的圖像中對應(yīng)相同位置的像素的綠色通道的顏色值。
[0107]步驟4中的強(qiáng)光混合步驟主要是為了將圖像顏色的差異拉大,從而達(dá)到美容的效果;連續(xù)的強(qiáng)光混合的次數(shù)為I至10次之間,連續(xù)的強(qiáng)光混合的次數(shù)較少時(shí),美容效果較不明顯;連續(xù)的強(qiáng)光混合的次數(shù)較多時(shí),美容效果容易失真;但都能夠?qū)崿F(xiàn)美容的目的;本實(shí)施例中,連續(xù)的強(qiáng)光混合的次數(shù)為3次,其能夠更好地解決技術(shù)問題并達(dá)到更好的美容效果;本領(lǐng)域技術(shù)人員很可能根據(jù)不同的圖像美容方案選擇不同的混合次數(shù)。其強(qiáng)光混合的公式為:
[0108]resultColor = ((base) <=128? (base)*(base)/128:255-(255-(base))*(255-(base) )/128)
[0109]其中,resultColor為強(qiáng)光計(jì)算后的結(jié)果,base為步驟3中線性光混合計(jì)算后得到的G1。
[0110]步驟5中的計(jì)算方法的公式為:
[0111]if (Red < 0.5)
[0112]{
[0113]alphaValue = 1.0- (0.5-Red) *2.0 ;
[0114]}
[0115]Else
[0116]{
[0117]alphaValue =1.0;
[0118]}
[0119]G3 = G2*max(0.0, alphaValue_Blue*0.0019608);
[0120]其中,G3為第三綠色通道值,G2的初始值為步驟4中強(qiáng)光混合計(jì)算的結(jié)果,Red為高斯模糊后的紅色通道的值,Blue為高斯模糊后的藍(lán)色通道的值。
[0121]步驟6中,對原始圖像進(jìn)行顏色映射,得到美白后的圖像;顏色映射的公式為:
[0122]oralColor = arrayCurve[oralColor];
[0123]其中arrayCurve為預(yù)定的一組顏色映射,oralColor為原始圖像中單個(gè)像素的紅色通道、綠色通道、藍(lán)色通道的顏色值。
[0124]步驟7中,所述的步驟7中對原始圖像進(jìn)行膚色識(shí)別,得到對應(yīng)的膚色概率值,進(jìn)一步包括以下步驟:
[0125]步驟71.對圖像進(jìn)行人臉識(shí)別,獲取人臉區(qū)域;當(dāng)人臉區(qū)域識(shí)別失敗時(shí),將整個(gè)圖像定義為人臉區(qū)域;
[0126]步驟72.對所述的人臉區(qū)域進(jìn)行均值計(jì)算,獲取平均膚色;
[0127]步驟73.根據(jù)所述的平均膚色計(jì)算當(dāng)前圖像的膚色概率映射表;
[0128]步驟74.根據(jù)所述的膚色概率映射表對當(dāng)前圖像進(jìn)行膚色識(shí)別,并獲得當(dāng)前圖像的膚色概率值。
[0129]步驟71中涉及到的人臉識(shí)別,由于不涉及本發(fā)明的主要內(nèi)容,因此不進(jìn)行贅述。本實(shí)施例中,人臉識(shí)別方法采用常規(guī)方法,比如文獻(xiàn)“P.V1la and M.Jones.RapidObject Detect1n using a Boosted Cascade of Simple Features,in:Computer Vis1nand Pattern Recognit1n,2001.CVPR 2001.Proceedings of the 2001IEEE ComputerSociety Conference on”。根據(jù)定位獲得人臉的大致區(qū)域位置。
[0130]所述的步驟72進(jìn)一步包括:
[0131]步驟721.初始化原始皮膚模型;
[0132]步驟722.計(jì)算整個(gè)圖像的顏色均值,作為初始皮膚的閾值;
[0133]步驟723.根據(jù)獲取得的初始皮膚的閾值計(jì)算人臉區(qū)域的平均膚色。
[0134]步驟721中,初始化原始皮膚模型的步驟如下:
[0135]步驟7211.創(chuàng)建膚色模型,大小為256*256 ;
[0136]步驟7212.依次對膚色模型進(jìn)行賦值,具體偽代碼如下;
[0137]預(yù)設(shè)臨時(shí)變量AlphaValue、nMax、1、j為整數(shù)類型。
[0138]膚色模型變量為SkinModel [256] [256]
[0139]For(i = O ;i < 256 ;i++)
[0140]{
[0141]判斷i是否大于128,如果大于128,則AlphaValue為255,否則為i*2 ;
[0142]計(jì)算獲得nMax 的值,計(jì)算公式為 nMax = min (256, AlphaValue*2);
[0143]For(j = 0 ;j < nMax ;j++)
[0144]{
[0145]計(jì)算對應(yīng)位置的膚色模型的值,計(jì)算公式為SkinModel [i] [j]=AlphaValue-(j/2);
[0146]}
[0147]For (j = nMax.j < 256 ; j++)
[0148]{
[0149]初始對應(yīng)位置的膚色模型的值為O ;
[0150]}
[0151]}
[0152]。
[0153]如以程度代碼形式表示,則初始化原始皮膚模型的公式如下:
[0154]BYTE SkinModel[256][256];
[0155]BYTE AlphaValue = 255 ;
[0156]for(i = O ;i < 256 ;i++)
[0157]{
[0158]AlphaValue = (i < 128 ? (i << I):255);
[0159]int nMax = min(256, (AlphaValue << I));
[0160]for (j = 0 ;j < nMax ;++j)
[0161]{
[0162]SkinModel [i] [j] = AlphaValue- (j > > I);
[0163]}
[0164]for (j = nMax ; j < 256 ;++j)
[0165]{
[0166]SkinModel [i] [j] = 0 ;
[0167]}
[0168]}。
[0169]所述的步驟722進(jìn)一步包括:
[0170]步驟7221.遍歷整個(gè)圖像的像素點(diǎn),將紅色通道、綠色通道、藍(lán)色通道的顏色值累力口,得到顏色累加和;
[0171]步驟7222.將顏色累加值除以像素點(diǎn)的總數(shù),得到紅色通道、綠色通道、藍(lán)色通道的均值,作為初始皮膚的閾值。
[0172]所述的步驟723進(jìn)一步包括:
[0173]步驟7231.根據(jù)如下公式計(jì)算平均膚色的黑白值:
[0174]GRAY I = 0.299*RED+0.587*GREEN+0.114祁LUE
[0175]其中,GRAYl為灰度圖的當(dāng)前像素點(diǎn)的灰度值;RED、GREEN、BLUE分別為圖像的當(dāng)前像素點(diǎn)的紅、綠、藍(lán)通道的顏色值;
[0176]步驟7232.將所述的黑白值作為閾值,用來排除人臉區(qū)域非皮膚的部分;
[0177]步驟7233.依次遍歷人臉區(qū)域里的像素點(diǎn)的顏色值,根據(jù)如下公式獲得平均膚色:
[0178]skin = SkinModel [red] [blue];
[0179]其中,skin為經(jīng)過皮膚模型的顏色映射后的皮膚值;SkinModel為初始化原始皮膚模型;red為紅色通道的顏色值;blue為藍(lán)色通道的顏色值。
[0180]所述的步驟73中根據(jù)所述的平均膚色計(jì)算當(dāng)前圖像的膚色概率映射表,所述的膚色概率映射表通過如下步驟獲取:
[0181]步驟731.創(chuàng)建膚色概率映射表,大小為256*256 ;
[0182]步驟731.依次對膚色概率映射表進(jìn)行賦值,具體偽代碼如下;
[0183]預(yù)設(shè)臨時(shí)變量1、j、SkinRed_Left、AlphaValue、Offset、TempAlphaValue、OffsetJ為整數(shù)類型;
[0184]膚色概率映射表的變量為SkinProbability[256] [256];
[0185]SkinRed為步驟7222計(jì)算得到的紅色通道的均值;SkinBlue為步驟7222計(jì)算得到的藍(lán)色通道的均值;
[0186]預(yù)設(shè)SkinRed_Left 的值,計(jì)算公式為:SkinRed_Left = SkinRed-128 ;
[0187]For(i = O ;i < 256 ;i++)
[0188]{
[0189]計(jì)算Offset 的值,公式為 Offset = max (0, min (255, i_SkinRed_Left));
[0190]判斷Offset的值是否小于128,如果小于的,話則AlphaValue = 0ffset*2 ;如果大于等于128的話,則AlphaValue = 255 ;
[0191]For(j = O ;j < 256 ;j++)
[0192]{
[0193]計(jì)算OffsetJ 的值,公式為 OffsetJ = max (O, j-SkinBlue);
[0194]計(jì)算TempAlphaValue 的值,公式為 TempAlphaValue = max (AlphaValue-(OffsetJ*2),O);
[0195]判斷TempAlphaValue 的值。如果大于 160 的話,則 SkinProbability [i] [j]的值為 255 ;
[0196]如果小于90的話,則SkinProbability [i] [j]的值為O;否貝丨JSkinProbability[i] [j]的值為 TempAlphaValue+30 ;
[0197]}
[0198]}
[0199]。
[0200]如以程度代碼形式表示,所述的膚色概率映射表具體通過如下公式獲取:
[0201]BYTE SkinModel[256][256];
[0202]BYTE AlphaValue = 255 ;
[0203]int SkinRed_Left = SkinRed-128 ;
[0204]for (int i = 0 ;i < 256 ;i++)
[0205]{
[0206]int Offset = max (0, min (255, (i_SkinRed_Left)));
[0207]if (Offset < 128)
[0208]{
[0209] AlphaValue = (Offset << I);
[0210]}
[0211]else
[0212]{
[0213]AlphaValue = 255 ;
[0214]}
[0215]for (int j = 0 ; j < 256 ; j++)
[0216]{
[0217]int OffsetJ = max(0, (j-SkinBlue));
[0218]int TempAlphaValue = max (AlphaValue-(Off set J >> 1),0);
[0219]if (TempAlphaValue > 160)
[0220]{
[0221]SkinModel [i] [j] = 255 ;
[0222]}
[0223]el se if (TempAlphaValue < 90)
[0224]{
[0225]SkinModel [i] [j] = 0 ;
[0226]}
[0227]else
[0228]{
[0229]SkinModel[i][j] = TempAlphaValue+30 ;
[0230]}
[0231]}
[0232]}
[0233]其中,SkinRed和SkinBlue為步驟7222中獲取的紅色通道和藍(lán)色通道的均值。
[0234]所述的步驟74中根據(jù)所述的膚色概率映射表對當(dāng)前圖像進(jìn)行膚色識(shí)別,并獲得當(dāng)前圖像的膚色概率值,計(jì)算方法如下:
[0235]skinColor = SkinProbability[red][blue]
[0236]其中,skinColor為當(dāng)前圖像的膚色概率值;SkinProbability為膚色概率映射表;red為像素點(diǎn)的紅色通道的顏色值;blue為像素點(diǎn)的藍(lán)色通道的顏色值。
[0237]所述步驟8中以所述第三綠色通道值G3與對應(yīng)的膚色概率值相乘得到的積作為透明度將原始圖像與所述美白圖像進(jìn)行透明度混合的公式如下:
[0238]resultColor = oralColor*alpha+(1.0-alpha)^arrayColor ;
[0239]其中resultColor為處理后的美容圖像的顏色值;oralColor為原始圖像的顏色值;arrayColor為步驟6中得到的美白圖像的顏色值;alpha為步驟5中得到的G3進(jìn)行歸一化的值乘以其對應(yīng)的膚色概率值得到的積,所述歸一化即做以下公式:G3/255.0。
[0240]下面結(jié)合附圖1對整個(gè)美容方法的各個(gè)步驟進(jìn)行詳細(xì)說明,其包括:
[0241]步驟1:從本地或遠(yuǎn)程讀取原始圖像,圖像包括單張圖像或從視頻上截取的單幀圖像或GIF動(dòng)畫里的單幀;
[0242]步驟2:對原始圖像進(jìn)行高斯模糊,其中,初始值i = 0,j = 0,w為原始圖像的寬,h為原始圖像的高;若i < h,判斷是否j < W,否則程序結(jié)束;若j < W,進(jìn)入下一步程序,否則進(jìn)行i = ++計(jì)算,并重新判斷是否i < h;
[0243]步驟3:依次提取原始圖像高斯模糊后像素點(diǎn)的綠色通道值G與fg,對其進(jìn)行線性光混合得到第一綠色通道值Gl ;這里使用綠光是為了避免計(jì)算亮度的時(shí)間,提高了運(yùn)算速度。
[0244]步驟4:對步驟3得到的Gl與自身進(jìn)行連續(xù)3次的強(qiáng)光混合,得到第二綠色通道值G2 ;這個(gè)步驟的作用是拉大對比度,亮的更亮,暗的更暗;
[0245]步驟5:將第二綠色通道值G2與高斯模糊后的紅色通道值R和藍(lán)色通道值B相結(jié)合,根據(jù)一種新的計(jì)算方法重新計(jì)算出第三綠色通道值G3 ;
[0246]步驟6:將原始圖像進(jìn)行美白的顏色映射,得到美白圖像。
[0247]步驟7.對原始圖像進(jìn)行膚色識(shí)別,得到對應(yīng)的膚色概率值;
[0248]步驟8.以所述第三綠色通道值G3與對應(yīng)的膚色概率值相乘得到的積作為透明度將原始圖像與所述美白圖像進(jìn)行透明度混合,形成美容圖像。
[0249]通過以上的實(shí)施方式的描述,數(shù)字圖像處理領(lǐng)域的技術(shù)人員可以清楚地了解到本發(fā)明可以通過軟件實(shí)現(xiàn),也可以借助軟件及必要的通用硬件平臺(tái)的方式來實(shí)現(xiàn)。基于這樣的理解,本發(fā)明的技術(shù)方案可以以軟件產(chǎn)品的形式體現(xiàn)出來,該軟件產(chǎn)品可以存儲(chǔ)在一個(gè)非易失性存儲(chǔ)介質(zhì)(可以是⑶-R0M,U盤,移動(dòng)硬盤等)中,包括若干指令用以使得一臺(tái)計(jì)算機(jī)設(shè)備(可以是個(gè)人計(jì)算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個(gè)實(shí)施例的方法。
[0250]上述說明示出并描述了本發(fā)明的優(yōu)選實(shí)施例,如前,應(yīng)當(dāng)理解本發(fā)明并非局限于本文所披露的形式,不應(yīng)看作是對其他實(shí)施例的排除,而可用于各種其他組合、修改和環(huán)境,并能夠在本文發(fā)明構(gòu)想范圍內(nèi),通過上述教導(dǎo)或相關(guān)領(lǐng)域的技術(shù)或知識(shí)進(jìn)行改動(dòng)。而本領(lǐng)域人員所進(jìn)行的改動(dòng)和變化不脫離本發(fā)明的精神和范圍,則都應(yīng)在本發(fā)明所附權(quán)利要求的保護(hù)范圍內(nèi)。
【權(quán)利要求】
1.一種數(shù)字圖像的快速美容方法,其特征在于,包括以下步驟: 步驟1.從本地或遠(yuǎn)程讀取原始圖像; 步驟2.對原始圖像進(jìn)行高斯模糊處理,得到模糊圖像; 步驟3.依次提取原始圖像單個(gè)像素的綠色通道值G,該綠色通道與所述模糊圖像的對應(yīng)像素進(jìn)行線性光混合,得到第一綠色通道值Gl ; 步驟4.所述經(jīng)過線性光混合后的第一綠色通道值Gl與其自身Gl進(jìn)行連續(xù)的強(qiáng)光混合,得到第二綠色通道值G2; 步驟5.將第二綠色通道值G2與高斯模糊后的紅色通道值R和藍(lán)色通道值B相結(jié)合,計(jì)算出第三綠色通道值G3; 步驟6.對原始圖像進(jìn)行顏色映射,得到美白圖像; 步驟7.對原始圖像進(jìn)行膚色識(shí)別,得到對應(yīng)的膚色概率值; 步驟8.以所述第三綠色通道值G3與對應(yīng)的膚色概率值相乘得到的積作為透明度,對原始圖像與所述美白圖像進(jìn)行透明度混合,形成美容圖像。
2.根據(jù)權(quán)利要求1所述的一種數(shù)字圖像的快速美容方法,其特征在于:所述步驟3中線性光混合的公式為:
Gl = (2*G-2*fg+l)/2 其中,Gl是指單個(gè)像素經(jīng)過線性光混合后的綠色通道的顏色值,G是指單個(gè)像素的原始圖像的綠色通道的顏色值,fg是指步驟2中高斯模糊后的圖像中對應(yīng)相同位置的像素的綠色通道的顏色值。
3.根據(jù)權(quán)利要求1所述的一種數(shù)字圖像的快速美容方法,其特征在于:所述步驟4中的連續(xù)的強(qiáng)光混合,其連續(xù)次數(shù)為I至10次。
4.根據(jù)權(quán)利要求3所述的一種數(shù)字圖像的快速美容方法,其特征在于:所述步驟4中強(qiáng)光混合的公式為:
resultColor = ((base) < = 128 ? (base) * (base)/128:255-(255-(base)) * (255-(base))/128) 其中,resultColor為強(qiáng)光計(jì)算后的結(jié)果,base為步驟3中線性光混合計(jì)算后得到的Gl0
5.根據(jù)權(quán)利要求1所述的一種數(shù)字圖像的快速美容方法,其特征在于:所述步驟5中的計(jì)算方法為:
if (Red < 0.5)
{
alphaValue = 1.0- (0.5-Red) *2.0 ;
}
Else
{
alphaValue = 1.0;
}
G3 = G2*max(0.0, alphaValue_Blue*0.0019608); 其中,G3為第三綠色通道值,G2的初始值為所述步驟4中強(qiáng)光混合計(jì)算的結(jié)果,Red為高斯模糊后的紅色通道的值,Blue為高斯模糊后的藍(lán)色通道的值。
6.根據(jù)權(quán)利要求1所述的一種數(shù)字圖像的快速美容方法,其特征在于:所述步驟6中,對原始圖像進(jìn)行顏色映射,得到美白圖像;其中,顏色映射的公式為:
oralColor = arrayCurve[oralColor]; 其中arrayCurve為預(yù)定的一組顏色映射,oralColor為原始圖像中單個(gè)像素的紅色通道、綠色通道、藍(lán)色通道的顏色值。
7.根據(jù)權(quán)利要求1所述的一種數(shù)字圖像的快速美容方法,其特征在于:所述的步驟7中對原始圖像進(jìn)行膚色識(shí)別,得到對應(yīng)的膚色概率值,進(jìn)一步包括以下步驟: 步驟71.對圖像進(jìn)行人臉識(shí)別,獲取人臉區(qū)域; 步驟72.對所述的人臉區(qū)域進(jìn)行均值計(jì)算,獲取平均膚色; 步驟73.根據(jù)所述的平均膚色計(jì)算當(dāng)前圖像的膚色概率映射表; 步驟74.根據(jù)所述的膚色概率映射表對當(dāng)前圖像進(jìn)行膚色識(shí)別,并獲得當(dāng)前圖像的膚色概率值。
8.根據(jù)權(quán)利要求7所述的一種數(shù)字圖像的快速美容方法,其特征在于,所述的步驟72進(jìn)一步包括: 步驟721.初始化原始皮膚模型; 步驟722.計(jì)算整個(gè)圖像的顏色均值,作為初始皮膚的閾值; 步驟723.根據(jù)獲取得的初始皮膚的閾值計(jì)算人臉區(qū)域的平均膚色。
9.根據(jù)權(quán)利要求8所述的一種數(shù)字圖像的快速美容方法,其特征在于,所述的步驟722進(jìn)一步包括: 步驟7221.遍歷整個(gè)圖像的像素點(diǎn),將紅色通道、綠色通道、藍(lán)色通道的顏色值累加,得到顏色累加和; 步驟7222.將顏色累加值除以像素點(diǎn)的總數(shù),得到紅色通道、綠色通道、藍(lán)色通道的均值,作為初始皮膚的閾值。
10.根據(jù)權(quán)利要求8所述的一種數(shù)字圖像的快速美容方法,其特征在于,所述的步驟723進(jìn)一步包括: 步驟7231.根據(jù)如下公式計(jì)算平均膚色的黑白值:
GRAY I = 0.299*RED+0.587*GREEN+0.114祁LUE 其中,GRAYl為灰度圖的當(dāng)前像素點(diǎn)的灰度值;RED、GREEN、BLUE分別為圖像的當(dāng)前像素點(diǎn)的紅、綠、藍(lán)通道的顏色值; 步驟7232.將所述的黑白值作為閾值,用來排除人臉區(qū)域非皮膚的部分; 步驟7233.依次遍歷人臉區(qū)域里的像素點(diǎn)的顏色值,根據(jù)如下公式獲得平均膚色: skin = SkinModel[red][blue]; 其中,skin為經(jīng)過皮膚模型的顏色映射后的皮膚值;SkinModel為初始化原始皮膚模型;red為紅色通道的顏色值;blue為藍(lán)色通道的顏色值。
11.根據(jù)權(quán)利要求7所述的一種數(shù)字圖像的快速美容方法,其特征在于,所述的步驟73中根據(jù)所述的平均膚色計(jì)算當(dāng)前圖像的膚色概率映射表,所述的膚色概率映射表通過如下步驟獲取: 步驟731.創(chuàng)建膚色概率映射表,大小為256*256 ; 步驟731.依次對膚色概率映射表進(jìn)行賦值,具體偽代碼如下; 預(yù)設(shè)臨時(shí)變量 1、j、SkinRed_Left、AlphaValue、Offset、TempAlphaValue> OffsetJ 為整數(shù)類型; 膚色概率映射表的變量為SkinProbability [256] [256]; SkinRed為步驟7222計(jì)算得到的紅色通道的均值;SkinBlue為步驟7222計(jì)算得到的藍(lán)色通道的均值; 預(yù)設(shè) SkinRed_Left 的值,計(jì)算公式為:SkinRed_Left = SkinRed-128 ;
For(i = O ;i < 256 ;i++)
{
計(jì)算 Offset 的值,公式為 Offset = max (0, min (255, i_SkinRed_Left)); 判斷Offset的值是否小于128,如果小于的,話則AlphaValue = 0ffset*2 ;如果大于等于 128 的話,則 AlphaValue = 255 ;
For (j = O ;j < 256 ;j++)
{ 計(jì)算 OffsetJ 的值,公式為 OffsetJ = max (O, j-SkinBlue);
計(jì)算 TempAlphaValue 的值,公式為 TempAlphaValue = max (AlphaValue- (0ffsetJ*2),O); 判斷TempAlphaValue的值。如果大于160的話,貝丨J SkinProbability[i] [j]的值為255 ; 如果小于 90 的話,則 SkinProbability [i] [j]的值為 O ;否則 SkinProbability [i] [j]的值為 TempAlphaValue+30 ;
}
}
ο
12.根據(jù)權(quán)利要求7所述的一種數(shù)字圖像的快速美容方法,其特征在于,所述的步驟74中根據(jù)所述的膚色概率映射表對當(dāng)前圖像進(jìn)行膚色識(shí)別,并獲得當(dāng)前圖像的膚色概率值,計(jì)算方法如下:
skinColor = SkinProbability[red][blue] 其中,skinColor為當(dāng)前圖像的膚色概率值;SkinProbability為膚色概率映射表;red為像素點(diǎn)的紅色通道的顏色值;blue為像素點(diǎn)的藍(lán)色通道的顏色值。
13.根據(jù)權(quán)利要求7所述的一種數(shù)字圖像的快速美容方法,其特征在于,所述的步驟71中對圖像進(jìn)行人臉識(shí)別,獲取人臉區(qū)域,當(dāng)人臉區(qū)域識(shí)別失敗時(shí),則將整個(gè)圖像定義為人臉區(qū)域。
14.根據(jù)權(quán)利要求1所述的一種數(shù)字圖像的快速美容方法,其特征在于:所述步驟8中以所述第三綠色通道值G3與對應(yīng)的膚色概率值相乘得到的積作為透明度將原始圖像與所述美白圖像進(jìn)行透明度混合的公式如下:
resultColor = oralColor氺alpha+(1.0-alpha)^arrayColor ; 其中resultColor為處理后的美容圖像的顏色值;oralColor為原始圖像的顏色值;arrayColor為步驟6中得到的美白圖像的顏色值;alpha為步驟5中得到的G3進(jìn)行歸一化的值乘以其對應(yīng)的膚色概率值得到的積,所述歸一化即做以下公式:G3/255.0。
【文檔編號(hào)】G06T5/00GK104282002SQ201410488602
【公開日】2015年1月14日 申請日期:2014年9月22日 優(yōu)先權(quán)日:2014年9月22日
【發(fā)明者】張偉, 傅松林, 張長定, 李志陽 申請人:廈門美圖網(wǎng)科技有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會(huì)獲得點(diǎn)贊!
1