專利名稱:一種圖像處理方法
技術(shù)領(lǐng)域:
本發(fā)明涉及圖像處理技術(shù),尤其涉及一種將低動態(tài)光照效果圖像轉(zhuǎn)換成高動態(tài)光照效果圖像的方法。
背景技術(shù):
隨著多媒體技術(shù)和因特網(wǎng)的迅速發(fā)展與普及,圖像處理技術(shù)受到空前廣泛的重視,并進(jìn)入到網(wǎng)絡(luò)游戲等新的領(lǐng)域中。計算機(jī)在表示圖像和顯示器顯示圖像的時候是用8bit(256)級來區(qū)分圖象的亮度的,普通的圖形文件即低動態(tài)光照效果圖像(LDR)一般是以32位整數(shù)儲存的,圖片中的每個象素有RGBA四個通道,分別占8位,是整數(shù)值保存,即其中任意通道在程序中都是0到255的整數(shù)值,而在顯卡中表示0到1的顏色值,0表示最暗,1表示最亮,精度為1/255。比如R通道在程序中的值為16,則在顯卡中它的值為16/255。幾乎所有的顯卡都支持這種格式的圖片。但這區(qū)區(qū)幾百或幾萬分之一的精度是無法再現(xiàn)真實自然的光照情況的。想象一下太陽的發(fā)光強(qiáng)度和一個純黑的物體之間的灰度范圍或者說亮度范圍的差別,遠(yuǎn)遠(yuǎn)超過了256個級別。因此,一張普通的白天風(fēng)景圖片,看上去白云和太陽可能都呈現(xiàn)是同樣的灰度/亮度,都是純白色,但實際上白云和太陽之間的亮度不可能一樣,他們之間的亮度差別是巨大的,可見普通圖形文件格式是很不精確的,遠(yuǎn)遠(yuǎn)沒有記錄到現(xiàn)實世界的實際狀況。因此,就引入了HDR即高動態(tài)光照渲染技術(shù)。HDR技術(shù)的原理是采用浮點(diǎn)紋理儲存一個超出0到1范圍的很大范圍的亮度信息(0,Max),Max>1。與LDR的技術(shù)相比,由于HDR技術(shù)擴(kuò)大了亮度范圍和亮度精度,從而使制作成的圖片更接近真實的圖像效果。
現(xiàn)有技術(shù)中要制作出HDR效果的圖片,可以將兩張不同曝光程度的LDR的圖片拼接成一張HDR圖片。然而,這種方法需要用相機(jī)拍攝兩張相同景物的照片,通過兩張曝光度不同但視角相同的普通照片互相拼接,不能處理已經(jīng)存在的單一照片。因此,現(xiàn)有技術(shù)不能滿足用戶將任意一張圖片處理成HDR效果的圖片,缺乏靈活性。
發(fā)明內(nèi)容
本發(fā)明提供一種圖像處理方法,用以解決將一張低動態(tài)光照效果圖片轉(zhuǎn)換成一張高動態(tài)光照效果的圖片。
為解決上述問題,本發(fā)明提供以下技術(shù)方案一種圖像處理方法,其特征在于,包括如下步驟步驟一,將關(guān)注象素周圍區(qū)域的象素權(quán)值進(jìn)行加法運(yùn)算,得出象素的權(quán)值和做為關(guān)注象素的亮度的擴(kuò)展范圍,根據(jù)擴(kuò)展范圍來擴(kuò)大關(guān)注象素的亮度;步驟二,對關(guān)注象素周圍區(qū)域的象素進(jìn)行逐個采樣,將周圍區(qū)域象素的通道值和關(guān)注象素的通道值比較后,將區(qū)域內(nèi)所有象素的權(quán)值和根據(jù)規(guī)則進(jìn)行加減運(yùn)算,根據(jù)運(yùn)算結(jié)果調(diào)整關(guān)注象素亮度的精度;步驟三,按照步驟一和步驟二的方法逐個處理圖像中的所有象素,直至完成整個圖像處理。
步驟一之前還包括以下步驟設(shè)定所需圖像的最大亮度值。
步驟一和步驟二中所述關(guān)注象素周圍區(qū)域是任意的方形矩陣形區(qū)域。
步驟一中所述的象素權(quán)值是根據(jù)以關(guān)注象素為中心,按照從中間向四周遞減的規(guī)則定義的任意值。
步驟二中所述通道值是象素的每個通道值,分別對象素的各個通道值進(jìn)行計算。
步驟一中所述的象素的權(quán)值和是將周圍象素中通道值為255的象素權(quán)值相加得出的值。
步驟一中所述擴(kuò)大關(guān)注象素的亮度是指根據(jù)設(shè)定的圖像的最大亮度值與各個通道的權(quán)值和分別擴(kuò)大關(guān)注象素各個通道的亮度。
步驟二中當(dāng)被比較象素的通道值大于關(guān)注象素的通道值,則權(quán)值和等于未比較前的權(quán)值和加上被比較象素的權(quán)值;當(dāng)被比較象素的通道值小于關(guān)注象素的通道值,則權(quán)值和等于未比較前的權(quán)值和減去被比較象素的權(quán)值;當(dāng)被比較象素的通道值等于關(guān)注象素的通道值,則權(quán)值和不變。
步驟二中關(guān)注象素必須和周圍區(qū)域中的所有象素逐個進(jìn)行比較,直至遍歷關(guān)注象素周圍的整個區(qū)域。
步驟二中所述調(diào)整關(guān)注象素亮度的精度是指根據(jù)設(shè)定的圖像的最大亮度值與各個通道的權(quán)值和來分別提升關(guān)注象素各個通道亮度的精度。
圖1是本發(fā)明方法流程圖;圖2是所列方形矩陣區(qū)域象素權(quán)值圖;圖3是關(guān)注象素在圖像邊緣時假設(shè)的象素權(quán)值圖;圖4是關(guān)注象素在圖像邊緣時真實的象素權(quán)值圖。
具體實施例方式
為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖及實施例,對本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說明。
參考圖1,在本發(fā)明的具體實施方式
中,僅以象素的其中一個通道的亮度調(diào)整來描述處理過程,其他通道的亮度處理過程類似。
步驟S1,先設(shè)定所需圖像的最大亮度值,即象素通道的最大亮度值,通常一張最接近真實效果的圖像的最大亮度值為100,在本發(fā)明的具體實施方式
中我們設(shè)定本圖像的最大亮度值為100。
步驟S2,選定關(guān)注象素周圍的區(qū)域象素,該區(qū)域可以是任意的方形矩陣區(qū)域,即該矩陣區(qū)域的行數(shù)和列數(shù)相同,在本發(fā)明的具體實施方式
中選定的區(qū)域象素為在關(guān)注象素周圍9×9的方形矩陣區(qū)域內(nèi)的象素;步驟S3,為矩陣區(qū)域內(nèi)的象素賦予權(quán)值;一般情況下,這些象素的權(quán)值按象素的位置從中間向四周遞減,可以為整數(shù)或者浮點(diǎn)數(shù),例如,在本發(fā)明的具體實施方式
中,為矩陣區(qū)域內(nèi)的象素賦予權(quán)值如圖2所示
其中X為關(guān)注象素的位置,其他數(shù)字為其所在位置象素的權(quán)值。
當(dāng)關(guān)注象素的位置在圖像的邊緣時,首先按照一般情況,給不在圖片上的象素分配權(quán)值,再用這些不在圖片位置上的象素的權(quán)值和來調(diào)整在圖片上的象素權(quán)值。如圖3所示,虛線框中表示的象素的位置實際上是在圖像之外,則先按照權(quán)值賦予的規(guī)則給不在圖像上的象素賦予權(quán)值。將不在圖片上的象素的權(quán)值表示為FactorRed,將所有不在圖片上的象素的權(quán)值和表示為SumRed,即SumRed=∑FactorRed,將在圖片上的象素的權(quán)值表示為FactorBlack,將圖片上的象素的權(quán)值和表示為SumBlack,即SumBlack=∑FactorBlack。為保證將圖片外的象素權(quán)值分配給圖片中的象素權(quán)值后,關(guān)注象素周圍象素的最大權(quán)值總和保持不變,需要給每個在圖片中的象素加上同一個比例的權(quán)值,則在圖片中象素的權(quán)值為FactorBlack=Factorblack+Factorblack(SumRed/SumBlack)因此關(guān)注象素在圖像邊緣時的區(qū)域象素權(quán)值如圖4所示。
步驟S41,將所有通道值等于255的象素的權(quán)值相加,得到權(quán)值和表示為SumFactor,區(qū)域內(nèi)象素權(quán)值的最大和表示為MaxSumFactor,當(dāng)區(qū)域內(nèi)所有象素的通道值都等于255時,象素權(quán)值和為最大SumFactor=MaxSumFactor。(區(qū)域的范圍可以是任意的方形矩陣,象素的權(quán)值也可以為任意的以關(guān)注象素的位置從中間向四周遞減的規(guī)律排列的值,因此SumFactor隨著區(qū)域和權(quán)值的變化而改變。)步驟S42,調(diào)整關(guān)注象素的亮度值BrightNess。以周圍象素的權(quán)值和SumFactor與最大權(quán)值和MaxSumFactorm做為衡量標(biāo)準(zhǔn),并且SumFactor/MaxSumFactorm的值是關(guān)注象素能夠提升到最大亮度值的比例值,因此得出BrightNess=max(MaxBright×(SumFactor/MaxSumFactor),1)即將最大亮度值MaxBright乘以這個關(guān)注象素能夠提升到最大亮度值的比例值,由于在調(diào)整關(guān)注象素亮度之前關(guān)注象素的亮度值為1,得出的值和1取其中的最大值,則調(diào)整后關(guān)注象素的亮度值為其中的最大值。
步驟S51,將關(guān)注象素和區(qū)域內(nèi)的所有象素進(jìn)行逐個比較,在本發(fā)明中,從圖像的左上第一個象素開始直至右下最后一個象素為止。由于關(guān)注象素的亮?xí)艿街車渌笏氐挠绊?,因此要根?jù)對周圍其他象素的亮度的采集來處理關(guān)注象素的亮度,首先要計算關(guān)注象素周圍區(qū)域所有象素的權(quán)值和SumFactorI,其次將關(guān)注象素的通道值和區(qū)域內(nèi)所有象素的通道值進(jìn)行比較,根據(jù)比較結(jié)果計算權(quán)值和。當(dāng)被比較象素的通道值大于關(guān)注象素的通道值時,就說明被比較象素的亮度大于關(guān)注象素的亮度,為減少關(guān)注象素和周圍象素亮度的差異,因此必須提升關(guān)注象素亮度的精度,則象素權(quán)值和變?yōu)槲幢容^前的象素權(quán)值和加上被比較象素的權(quán)值,即SumFactorI=SumFactorI+被比較象素權(quán)值;同樣當(dāng)被比較象素的通道值小于關(guān)注象素的通道值時,就需要降低關(guān)注象素亮度的精度,則象素的權(quán)值和等于未比較前的象素權(quán)值和減去被比較象素的權(quán)值,既SumFactorI=SumFactorI-被比較象素權(quán)值;當(dāng)被比較象素的通道值等于關(guān)注象素的通道值時,不需要調(diào)整關(guān)注象素亮度的精度,則象素權(quán)值和不變,即SumFactorI=SumFactorI。遍歷完區(qū)域內(nèi)所有象素之后得出最后的象素權(quán)值和。
步驟S52,根據(jù)比較結(jié)果調(diào)整關(guān)注象素亮度的精度Precision。最開始計算的所有象素的權(quán)值和最大表示為MaxSumFactorI,最后遍歷所有象素所得象素權(quán)值和為SumFactorI,所得SumFactorI除以所有象素權(quán)值和MaxSumFactorI得到的比例就是調(diào)整關(guān)注象素亮度精度的標(biāo)準(zhǔn),LDR圖像中象素有四個通道,每個通道都占8位,關(guān)注象素未調(diào)整之前的亮度精度值為1/256,因此添加象素亮度的精度就必須乘以1/256,即增加一個在(0,1/256)范圍之間的值,由于-MaxSumFactorI<=SumFactorI<=MaxSumFactorI,為保證添加的亮度精度在(0,1/256)之間,則需添加的亮度精度PrecisionAdd=1/256(1/2(SumFactorI/MaxSumFactorI+1)),最后調(diào)整關(guān)注象素的亮度的精度為Precision=1/256(1/2(SumFactorI/MaxSumFactorI+1))。
執(zhí)行完以上所有步驟之后,關(guān)注象素的一個通道的亮度已經(jīng)調(diào)整完成。在本發(fā)明中,LDR圖片的每個象素有ARGB四個通道,重復(fù)上述所有步驟完成象素其余各通道的處理。對將一整張LDR圖片轉(zhuǎn)換成HDR圖片而言,可以按照從左上到右下的順序依次處理圖片中所有象素。將一張圖片中所有象素包含的所有通道的亮度都調(diào)整完成之后才完成整個圖片的處理過程。
應(yīng)當(dāng)理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。本領(lǐng)域的技術(shù)人員可以對本發(fā)明進(jìn)行各種改動和變型而不脫離本發(fā)明的精神和范圍。這樣,倘若本發(fā)明的這些修改和變型屬于本發(fā)明權(quán)利要求及其等同技術(shù)的范圍之內(nèi),則本發(fā)明也意圖包含這些改動和變型在內(nèi)。
權(quán)利要求
1.一種圖像處理方法,其特征在于,包括如下步驟步驟一,將關(guān)注象素周圍區(qū)域的象素權(quán)值進(jìn)行加法運(yùn)算,得出象素的權(quán)值和做為關(guān)注象素的亮度的擴(kuò)展范圍,根據(jù)擴(kuò)展范圍來擴(kuò)大關(guān)注象素的亮度;步驟二,對關(guān)注象素周圍區(qū)域的象素進(jìn)行逐個采樣,將周圍區(qū)域象素的通道值和關(guān)注象素的通道值比較后,將區(qū)域內(nèi)所有象素的權(quán)值和根據(jù)規(guī)則進(jìn)行加減運(yùn)算,根據(jù)運(yùn)算結(jié)果調(diào)整關(guān)注象素亮度的精度;步驟三,按照步驟一和步驟二的方法逐個處理圖像中的所有象素,直至完成整個圖像處理。
2.根據(jù)權(quán)利要求1所述方法,其特征在于,在步驟一之前還包括以下步驟設(shè)定所需圖像的最大亮度值。
3.根據(jù)權(quán)利要求1所述方法,其特征在于,步驟一和步驟二中所述關(guān)注象素周圍區(qū)域是任意的方形矩陣形區(qū)域。
4.根據(jù)權(quán)利要求1所述方法,其特征在于,步驟一中所述的象素權(quán)值是根據(jù)以關(guān)注象素為中心,按照從中間向四周遞減的規(guī)則定義的任意值。
5.根據(jù)權(quán)利要求1所述方法,其特征在于,步驟二中所述通道值是象素的每個通道值,分別對象素的各個通道值進(jìn)行計算。
6.根據(jù)權(quán)利要求1所述方法,其特征在于,步驟一中所述的象素的權(quán)值和是將周圍象素中通道值為255的象素權(quán)值相加得出的值。
7.根據(jù)權(quán)利要求1所述方法,其特征在于,步驟一中所述擴(kuò)大關(guān)注象素的亮度是指根據(jù)設(shè)定的圖像的最大亮度值與象素的權(quán)值和分別擴(kuò)大關(guān)注象素各個通道的亮度。
8.根據(jù)權(quán)利要求1所述方法,其特征在于,步驟二中當(dāng)被比較象素的通道值大于關(guān)注象素的通道值,則權(quán)值和等于未比較前的權(quán)值和加上被比較象素的權(quán)值;當(dāng)被比較象素的通道值小于關(guān)注象素的通道值,則權(quán)值和等于未比較前的權(quán)值和減去被比較象素的權(quán)值;當(dāng)被比較象素的通道值等于關(guān)注象素的通道值,則權(quán)值和不變。
9.根據(jù)權(quán)利要求8所述方法,其特征在于,步驟二中關(guān)注象素必須和周圍區(qū)域中的所有象素逐個進(jìn)行比較,直至遍歷關(guān)注象素周圍的整個區(qū)域。
10.根據(jù)權(quán)利要求1所述方法,其特征在于,步驟二中所述調(diào)整關(guān)注象素亮度的精度是指根據(jù)設(shè)定的圖像的最大亮度值與象素的權(quán)值和來分別提升關(guān)注象素各個通道亮度的精度。
全文摘要
本發(fā)明公開了一種圖像處理方法,該方法用于將低動態(tài)光照圖像轉(zhuǎn)換成更接近真實物理環(huán)境的高動態(tài)光照效果圖像,包括如下步驟步驟一,將關(guān)注象素周圍區(qū)域的象素權(quán)值進(jìn)行加法運(yùn)算,得出象素的權(quán)值和做為關(guān)注象素的亮度的擴(kuò)展范圍,根據(jù)擴(kuò)展范圍來擴(kuò)大關(guān)注象素的亮度;步驟二,對關(guān)注象素周圍區(qū)域的象素進(jìn)行逐個采樣,將周圍區(qū)域象素的通道值和關(guān)注象素的通道值比較后,將區(qū)域內(nèi)所有象素的權(quán)值和根據(jù)規(guī)則進(jìn)行加減運(yùn)算,根據(jù)運(yùn)算結(jié)果調(diào)整關(guān)注象素亮度的精度;步驟三,按照步驟一和步驟二的方法逐個處理圖像中的所有象素,直至完成整個圖像處理。
文檔編號G06T3/00GK101071502SQ20061006134
公開日2007年11月14日 申請日期2006年6月23日 優(yōu)先權(quán)日2006年6月23日
發(fā)明者劉皓 申請人:騰訊科技(深圳)有限公司