一種應(yīng)用于自動白平衡算法的圖像近灰色像素選取算法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及一種像素選取算法,具體地說是一種應(yīng)用于自動白平衡算法的圖像近 灰色像素選取算法,屬于圖像處理技術(shù)領(lǐng)域。
【背景技術(shù)】
[0002] 不同的光源具有不同的光譜成分和分布,這在色度學(xué)上稱之為色溫。光的波長越 短,色溫越高;波長越長,色溫越低。常見的紅橙黃綠青藍紫七色光中,從左到右波長依次降 低,色溫依次增高。一個白色的物體,在低色溫的光線照射下會偏紅,而在高色溫的光線照 射下會偏藍,稱為色溫引起的色差。
[0003] 人眼進化出了適應(yīng)性,使我們通常情況下不能發(fā)現(xiàn)色溫的變化。例如,人在鎢絲燈 (發(fā)光的色溫偏低)下長時間停留,并不會覺得鎢絲燈下的白紙偏紅,如果突然把日光燈改 為鎢絲燈照明.就會覺查到白紙的顏色偏紅了,但這種感覺也只能夠持續(xù)一會兒,人眼(包 括與之相關(guān)的色彩感覺系統(tǒng))會在此期間將這種色溫引起的色差校正過來。
[0004] 攝像機(注:本專利所說的"攝像機"泛指數(shù)碼攝像機、提供自動白平衡功能的數(shù) 碼照相機)的"圖像采集--處理系統(tǒng)"不具備人眼的這種適應(yīng)性。如果不根據(jù)景物照明的 色溫進行有針對性的調(diào)整,攝像機得到的圖像就會發(fā)生偏色。因此就出現(xiàn)了白平衡的概念, 白平衡的目的就是:針對各種色溫條件,通過攝像機內(nèi)部的色彩運算抵消色溫引起的色差, 使拍攝出來的圖像更接近人眼的視覺習(xí)慣。
[0005] 可以簡單地將白平衡理解為:在任意色溫條件下,攝像機拍攝目標(biāo)的標(biāo)準(zhǔn)白色經(jīng) 過電路的調(diào)整,成像后仍然為白色。
[0006] 自動白平衡是由攝像機以自動獲取色溫信息、根據(jù)色溫自動對圖像進行處理的方 式實現(xiàn)的白平衡。
[0007]自動獲取色溫信息的途徑分為兩類:第一類是在攝像機中裝備色溫測量部件,實 時獲取色溫信息,這一方案由于成本較高而應(yīng)用范圍有限;第二類是由攝像機中的運算芯 片(CPU、DSP、FPGA、ASIC等)執(zhí)行算法,對拍攝得到的圖像進行分析,從中獲取色溫信息。 本專利以下述及的自動白平衡算法所指均為基于第二類色溫自動獲取信息途徑的算法。
[0008] 自動白平衡算法通常包括以下三個基本步驟:
[0009] 1)色溫估計
[0010] 最經(jīng)典的色溫估計算法是灰色世界算法。這一算法基于如下假設(shè):對于一幅帶有 足夠色彩變化的圖像來說,整個場景的平均反射能抵消色差。最基本的方法就是計算整個 圖像的平均色差。但是,如果圖像顏色較為單一,以上算法求得的色溫就會非常不準(zhǔn)確。為 此,必須根據(jù)一定的約束條件,挑選合適的像素來計算色差,提高色溫估計的精確度。
[0011] 這里所說的"合適的像素"通常是指"近灰色像素",這是目前幾乎所有自動白平衡 算法的共同選擇。近灰色像素是指R、G、B三色值相差不大的像素,色溫估計算法假定近灰 色像素是由灰色像素在偏色光照射下得到的。通過統(tǒng)計、計算圖像中的近灰色像素RGB值 偏離純灰色像素RGB值(R=G=B)、CbCr值(Cb= 0,Cr= 0)的程度來估算色溫,在實 際運算過程中,通常將R、G、B值轉(zhuǎn)換為Y、Cb、Cr值,以方便分析。
[0012] 2)增益計算
[0013] 增益計算是在圖像色溫估計的基礎(chǔ)上,通過一定的方法得到通道增益。通道增益 也就是色溫校正因子,一般有藍色和紅色兩個分量,是對圖像藍色和紅色通道進行調(diào)整的 幅度。
[0014] 灰色像素的Cb、Cr均為0,因此,通道增益就是能將Cb、Cr調(diào)整到0(或接近0)的 兩個系數(shù)y和V。增益計算的方法有多種,比如查表法、迭代法等等。查表法是事先統(tǒng)計 出一張表,記錄不同的色溫所對應(yīng)的通道增益,具有速度快的優(yōu)點,但由于表的容量有限, 不能實現(xiàn)各種色溫情況的連續(xù)調(diào)節(jié)。迭代算法則是根據(jù)Cb、Cr的關(guān)系,不斷調(diào)節(jié)y、V,根 據(jù)每次調(diào)節(jié)后得到的Cb、Cr值確定下一次調(diào)節(jié)的量,直至將Cb、Cr調(diào)整到接近0。
[0015] 3)色溫校正
[0016] 色溫校正就是在圖像的藍色和紅色通道乘以各自的增益,從而調(diào)節(jié)R、G、B三色的 比例(或Cb、Cr的值)。一般針對攝像機中用于采集圖像原始信息的CCD、CMOS芯片(即 Sensor)米樣輸出的RGB信號進行。
[0017] 在自動白平衡算法的色溫估計步驟中,從圖像中選取近灰色像素的算法是關(guān)鍵環(huán) 節(jié)之一。一種經(jīng)典的近灰色像素選取算法是在YCbCr空間中定義一個三維結(jié)構(gòu),稱之為近 灰色區(qū)域,凡落入其中的像素都認(rèn)為是近灰色的,而其外的像素則是認(rèn)為非近灰色的。在計 算色差時,只計算近灰色像素的平均色差,以替代整個圖像的色差,從而提高色溫估計的準(zhǔn) 確度。
[0018] 這類算法的關(guān)鍵在于近灰色區(qū)域的確定。經(jīng)典近灰色像素的選取算法依據(jù)的不等 式為:
[0019] Y〈<M
[0020] Y-1Cb| -1Cr| > <i> 2
[0021] 其中,(M、巾2為預(yù)設(shè)的門限。滿足Y〈<M和Y-|Cb|-|Cr|><i)2不等式的區(qū)域在 YCbCr空間中表現(xiàn)為一個底部小上部大的四棱臺,如圖1所示,位于其內(nèi)的像素被認(rèn)為是近 灰色的,用于計算色溫引起的色差。
[0022] 為了驗證近灰色區(qū)域劃定算法的有效性,需要用到愛色麗24色標(biāo)準(zhǔn)色卡(愛色麗 ColorCheckerClassic,這是一種測試用標(biāo)準(zhǔn)色卡,以下簡稱為"標(biāo)準(zhǔn)色卡"),如圖2所示。
[0023] 在標(biāo)準(zhǔn)色卡中,最下一行的位置編號為11~16共6個色塊為由亮到暗變化的灰 色色塊,上面3行位置編號為21~26、31~36、41~46共計18個色塊為紅、綠、藍、黃、棕 等彩色色塊。標(biāo)準(zhǔn)色卡被用作攝像、照相設(shè)備的拍攝目標(biāo),以測試所得圖像在色彩還原方面 的質(zhì)量。
[0024] 對近灰色區(qū)域的劃定算法效果的驗證方法:將標(biāo)準(zhǔn)色卡置于專業(yè)的避光燈箱中, 在4種色溫仏、仍5、050、075)、多種照度的光源的照射下,拍攝其照片。用近灰色像素選取 算法對這些照片進行處理,選出來的近灰色像素保持不變,用附加算法將除近灰色像素之 外的像素改為特定的顏色(例如藍色,以便于直觀地區(qū)分),輸出為新的圖像。然后觀察新 圖像,看其中選取的近灰色像素中是否包括了未處理圖像中盡可能多的近灰色像素(標(biāo)準(zhǔn) 色卡中位于11~16位置的色塊中的像素)、是否盡可能少地"誤選"了非近灰色像素(標(biāo) 準(zhǔn)色卡中位于21~46位置的色塊中的像素)。
[0025] 在上述驗證模式下用圖1對應(yīng)的Y〈巾1和Y-1Cb|-1Cr| >巾2兩個不等式進行近灰 色點的選取、標(biāo)示,發(fā)現(xiàn)存在如下問題:當(dāng)巾1、巾2的值選定為折中值時(95、245左右),在 低色溫(A光源)下、尤其是低照度(2401x左右)時,從標(biāo)準(zhǔn)色卡圖像的各色塊中,僅能選 出亮度最高的灰色色塊(位置為11的色塊)中的部分像素,其它較低灰階的灰色色塊被排 除在外;與此同時,較高色溫(U35、D50、D75光源)時雖然能選出3個較高灰階的色塊(位 置為11、12、13的色塊),卻又誤選了 2~3個彩色色塊(位置為21~46的色塊)。在此 基礎(chǔ)上,增加巾2值會進一步減少低色溫下選出的灰色像素的數(shù)量,降低巾2值則會進一步 增加較高色溫下誤選的彩色像素數(shù)量(門限巾1僅用于排除Y值過大的點,對色溫判斷影 響不大)。由于后續(xù)色溫估計算法的效果要基于所選出的近灰色像素的覆蓋范圍(應(yīng)選盡 選,以保證獲得更完整的色溫信息)、純度(不應(yīng)選不選,以減少非近灰色像素對色溫估計 過程的干擾),所以,不論是少選還是誤選,對于準(zhǔn)確計算色差、估計色溫都是不利的。
【發(fā)明內(nèi)容】
[0026] 針對上述不足,本發(fā)明提供了一種應(yīng)用于自動白平衡算法的圖像近灰色像素選取 算法,其能夠準(zhǔn)確準(zhǔn)確計算色差和估計色溫,有效解決自動白平衡算法中經(jīng)典選取圖像近 灰色像素算法不能適應(yīng)寬色溫范圍、多種照度環(huán)境的問題,另外還提供了一種自動白平衡 算法,其能夠適應(yīng)寬色溫范圍和多種照度環(huán)境,并通過自動通道增益調(diào)整達到白平衡的目 的。
[0027] 本發(fā)明解決其技術(shù)問題采取的技術(shù)方案是:一種應(yīng)用于自動白平衡算法的圖像近 灰色像素選取算法,其特征是,包括以下步驟:
[0028] S1 :讀取目標(biāo)圖像中的像素,獲取每個像素的YCbCr值;
[0029]S2:將獲取圖像像素的YCbCr值代入下列不等式:
[0030] Cr><i) 1 (1)
[0031] Cr<<i>2 (2)
[0032] Cb> <i> 3 (3)
[0033] Cb〈傘 4 (4)
[0034] Cr| -1Cb| < <i> 5 (5)
[0035] Cb+Cr| < <i> 6 (6)
[0036] Y〈<i> 7 (7)
[0037] Y> <i> 8 (8)
[0038]式中,Y、Cb、Cr為圖像像素的Y、Cb、Cr值,<i>l、巾2、<i>3、<i>4、巾5、<i>6、<i>7、<i>8 為門限參數(shù),1〈 2, <i> 3〈 <i> 4, <i> 8〈 <i> 7;
[0039]S3:從圖像中選出近灰色點:如果圖像像素的YCbCr值符合步驟S2中所有的不 等式,則認(rèn)為它是近灰色像素,并將其發(fā)給后續(xù)算法模塊進行色溫估計;如果圖像像素的 YCbCr值不符合步驟S2中所有不等式中任何一個不等式,則認(rèn)為這個像素不是近灰色像 素,不再對其做任何處理。
[0040] 通過提出的一組新的不等式,以使在各種色溫、各種照度時能夠選出標(biāo)準(zhǔn)色卡圖 像中亮度最高的3個灰色色塊(位置為11、12、13的色塊)中的大多數(shù)像素,同時有效避免 了大量誤選彩色色塊(位置為21~46的色塊)中的像素,為后續(xù)算法提供了更全面、更準(zhǔn) 確的原始色差信息。
[0041] 優(yōu)選地,如果從目標(biāo)圖像中獲取的像素值為RGB值,則將RGB值轉(zhuǎn)換為YCbCr值, 其轉(zhuǎn)換公式如下:
[0042] Y= 0? 299*R+0. 587*G+0. 114*B
[0043] Cb= -0? 1687*R-0. 3313*G+0. 5*B
[0044] Cr= 0? 5*R-0. 4187*G-0. 0813*B
[0045] 通過進行RGB值轉(zhuǎn)換為YCbCr值,使像素的色彩特征更易于通過分析各分量數(shù)值 關(guān)系的方式加以提取。
[0046] 優(yōu)選地,在步驟S3中判斷一個圖像像素是否近灰色像素的過程具體包括以下步 驟:
[0047] S301 :判斷該圖像像素的YCbCr值是否符合不等式(1)、不等式(2)、不等式(3)和 不等式(4),如果巾1〈0〈巾2且巾3〈〇3〈巾4則進入下一步,否則退出 ;
[0048] S302 :判斷該圖像像素的YCbCr值是否符合不等式(5),如果|Cr| -1Cb|彡<i> 5則 進入下一步,否則退