專利名稱:三維圖形的產(chǎn)生方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種三維圖形的產(chǎn)生方法,是利用電腦將數(shù)字化的平面圖形,以重新處理其前景像素亮度的方式,使之在視覺上具有立體效果的技術(shù)。
傳統(tǒng)產(chǎn)生三維圖形的先決條件是先要在三維空間建立一標(biāo)準(zhǔn)的三維模型,然后為這個三維模型選定一欲呈現(xiàn)的材質(zhì),并設(shè)定投射于三維模型的光源與三維模型的相對位置,再以一三維引擎依據(jù)前述設(shè)定好的條件對三維模型進行渲染,方可獲得一具立體效果的圖形。雖然這種方法的準(zhǔn)確度佳,但是過程復(fù)雜,所產(chǎn)生的三維圖形也會占用較多的存儲空間。然而對于僅具有平面信息(X、Y軸方向的參數(shù))的二維圖形而言,想想使之具有三維圖形的立體效果,若以上述方法便不適了。這是因為在一般的二維圖形中,缺少了產(chǎn)生三維圖形所需的第三座標(biāo)軸(Z軸方向)的參數(shù),因此無法將一個只有平面信息的二維圖形,直接通過光源投射方向的設(shè)定以及三維引擎的渲染程序,使其具有與三維圖形相同的立體效果。
本發(fā)明的主要目的在于提供一種將二維圖形轉(zhuǎn)換為視覺上的三維圖形的方法,應(yīng)用在目前的電腦工作平臺中,用以將一幅原本只具有平面效果的圖片,藉由本發(fā)明所揭示的方法,直接轉(zhuǎn)換成一幅在視覺觀感上具有立體效果的圖片。
為使在描述本發(fā)明的技術(shù)時更為詳盡、準(zhǔn)確,先將本文用到的名詞先作如下說明底平面目的圖形所在的平面。
法線對于立體空間中曲面上的一點,該點的法線是一條經(jīng)過該點,并且與該點的切面垂直的直線。
法線方向某一點的法線是一條向兩端無限延伸的直線,并沒有單一的方向。本文所指的法線方向特指法線朝向物體外部的延伸方向。
法線投影方向在本文中,法線投影方向是指法線方向在底平面上的投影,它的值可以用一個二維向量來表示。
向量用于表示空間中具有方向和大小的量,在二維空間中的向量有兩個分量,包括有X軸方向與Y軸方向,以M[x][y]表示;在本文中以Dx[x][y]、Dy[x][y]表示法線投影方向在x軸與y軸方向上的分量。
圖像泛指未經(jīng)處理的二維圖形,在本文中以O(shè)[x][y]表示。
目的圖形被包含在圖像之中,是由前景像素所構(gòu)成,且為轉(zhuǎn)換成三維圖形的主角。
二色圖是由前景像素與前景圖像所組成以I[x][y]表示之,其中前景圖像用以表示圖像中目的圖形的像素(如中文字形);背景像素則是用以表示圖像中非目的圖形的像素(即為目的圖形的產(chǎn)部分)。
亮度目前顏色表示的格式有多種,本文所提的HLS是一種常用的格式,其中H表示色調(diào),S表示飽和度,L表示亮度,亮度表是顏色的明暗程度,當(dāng)一個像素受到光線的直射的時候,它會具有較高的亮度;當(dāng)它處于陰影中時,其亮度就較低。
一般而言,對于一個只有漫反射的平面來說,它的反射光強度(亮度)I漫射與觀察角度無關(guān),而是與入射光強度I入射及光的入射角A有關(guān),其關(guān)系可用公式(A)表示I漫射=KI入射cosA(A)其中K為常數(shù),入射光強度I入射為一定值,所以,在物體表面上某一點漫射光的強度主要與入射光方向及與該點法線方向的夾角有關(guān)。
本發(fā)明中圖形轉(zhuǎn)換的基本原理對于一幀只具有平面效果的數(shù)字化圖像O[x][y]10,在其底平面11上的任一像素的法線方向12a都為垂直向上的(如圖1所示);但是當(dāng)它經(jīng)處理而使其中央部分向上隆起時,在中央部分13的像素的法線方向12b則會向四周傾斜(如圖2所示),因此要計算邊緣部分14的像素的亮度值,就需要計算出這些改變了的法線方向12b。由于我們目前僅有的信息是一幅只具有平面效果的數(shù)字化圖像o[x][y]10,因此,要準(zhǔn)確計算這些法線方向12b是不可能的?,F(xiàn)實的方法是計算這些法線方向12b在底平面11上的投影(法線投影方向15),然后,根據(jù)法線投影方向15與光線投影方向(即光線在底平面上的投影)所形成的夾角值α151,來計算像素的亮度,以代替前述公式(A)中的光的入射角A。
在下文中,將揭示本發(fā)明所提的平面圖像的處理方法,用以計算法線投影方向;首先是將一數(shù)字化的圖像O[x][y]轉(zhuǎn)為二色圖I[x][y],其轉(zhuǎn)換方式是將原圖像O[x][y]中屬于背景的像素以“0”表示,屬于前景的像素以“1”表示,產(chǎn)生一與原圖像O[x][y]對應(yīng)的二色圖I[x][y];然后再根據(jù)每一個值為“1”的像素的法線方向,計算出它的法線投影方向。當(dāng)然,只有邊緣部分上的點才是有意義的法線投影方向(因為中央部分上的像素的法線投影是一個點),邊緣部分的范圍則是由寬度值ω控制。
請參照圖3,當(dāng)邊緣部分上的某一像素的法線投影的夾角值為α=0時,表示該像素的法線投影方向15a正好背離光源,因此該像素有最小的亮度值(即最暗,I0=Imin)。當(dāng)邊緣部分上的某一像素的法線投影的夾角值為α=π,表示該像素的法線投影方向15b正好面對光源,因此,該像素有最大的亮度值(最亮,Iπ=Imax),當(dāng)邊緣部分上的某一像素的法線投影的夾角值為α=θ,表示該像素的法線投影方向15c介于0與π之間,則該亮度值是介于最大值與最小值之間,可由公式(1)所示的線性插值法求得Iθ=Imin+θπ(Imax-Imin)----(1)]]>至于中央部分的點,因為它們沒有法線投影方向,所以可將綜們的亮度值設(shè)為最大亮度值與最小亮度值之和的一半。于是在經(jīng)過前述的處理后,可以得到基本的立體隆起效果,但邊緣會顯得比較僵硬,不夠圓滑,此時可利用點到邊界的最短以對邊緣部分上的點的亮度進行修正。最后再將計算所得的代表原圖像前景的新值代替原圖上的各前景點的亮度值,即可獲得一具有立體效果圖像。
有關(guān)本發(fā)明的詳細內(nèi)容及技術(shù),茲配合
如下。
圖1為在平面圖中法線方向的示意圖。
圖2為平面圖經(jīng)處理轉(zhuǎn)為立體圖后,法線方向改變情形的示意圖。
圖3是本發(fā)明圖像在經(jīng)光源投射后,在圖像上形成漫射的反射光的亮度計算實施例的示意圖。
圖4為本發(fā)明處理數(shù)字化二維圖形的流程圖。
圖5為本發(fā)明用以計算每一前景圖像的權(quán)值總和,所需的由圖像中某一像素在以寬度為ω所形成的十字形區(qū)域的示意圖。
圖6為本發(fā)明的亮度修正曲線示意圖。
圖7為本發(fā)明修正原圖像中屬性為前景的圖素的顏色及亮度的流程圖。
圖4所揭示的技術(shù)為根據(jù)圖形轉(zhuǎn)換的基本原理,將圖5中含有“t”字形的數(shù)字化的圖像O[x][y]10處理成具有立體效果的圖像的處理流程圖,其包括有步驟111設(shè)定圖像O[x][y]10中投射于其目的圖形上的一假想投射光源的投射方向,找出光源投射方向與法線投影方向所形成的夾角α;步驟112設(shè)定圖像O[x][y]10中目的圖形的邊緣寬度值ω,亦即藉由邊緣寬度值ω的設(shè)定,使得目的圖形在經(jīng)處理后,在圖像中浮起一相應(yīng)的高度;步驟113將圖像O[x][y]10轉(zhuǎn)換成二色圖I[x][y],也就是將圖像O[x][y]10中屬于背景上的各像素的值為“0”,屬于前景上的各像素的值置為“1”,同時并產(chǎn)生維度與二色圖I[x][y]的維度相同的資料矩陣Buffer[x][y](例如,若二色圖為一50×100的圖像,則資料矩陣也將是一個[50][100]的矩陣),而且在資料矩陣Butter[x][y]中的每個數(shù)值均與二色圖I[x][y]的每一個像素呈一對一的對應(yīng)關(guān)系;步驟114計算在二色圖I[x][y]中屬于圖像O[x][y]10的前景的各像素的權(quán)Weight[n],其方法是依公式(2),分別把圖像O[x][y]10中每個屬性為前景的像素(即在二色圖I[x][y]中為“1”的數(shù)值),以邊緣寬度ω為寬度值,所構(gòu)成的十字形區(qū)域16內(nèi)每個像素的密度(如圖5所示),或是以每個屬性為前景的像素為中心點,邊緣寬度ω為寬度值,所構(gòu)成的區(qū)域,以計算在區(qū)域內(nèi)每個像素的密度Weight[n]=e-n22(n-ω)2,(0≤n≤ω-1)----(2)]]>在公式(2)中,e為自然對數(shù),n為區(qū)域內(nèi)每一個像素到中心點的距離,a取適當(dāng)?shù)闹?,用以確保在n>=ω時,使Weight[n]可以小到忽略不計。
步驟115根據(jù)公式(3),計算每個屬性為前景的像素在所涵蓋的范圍內(nèi)權(quán)的總和,并將之存儲在先前建立的維度與二色圖I[x][y]相同的資料矩陣Buffer[x][y]中,用以反映在像素以邊緣寬度ω為寬度的范圍內(nèi),每一屬性為前景的像素的密度Buffer[x][y]=I[x][y]Weight
+Σi=1ω-1(I[x+i][y]+I[x][y+i]+I[x-i][y]+i[x][y-i]·Weight[i])----(3)]]>
步驟116根據(jù)圖像中屬于前景的各像素,依公式(4),計算每個像素在法線投影方向的X分量,并存儲在一X分量矩陣Dx[x][y]中;Dx[x][y]=Σi=1ω-1(Buffer[x+i][y]-Buffer[x-i][y])·Weight[i]----(4)]]>步驟117根據(jù)圖像中屬于前景的各像素,依公式(5),計算每個像素在法線投影方向的Y分量,并存儲到X-Y分量矩陣Dx[x][y]中;Dy[x][y]=Σi=1w-1(Buffer[x][y+i]-Buffer[x][y-i]·Weight[i]----(5)]]>(Dy為與Buffer等大小的數(shù)組)步驟118根據(jù)X分量矩陣、Y分量矩陣以及夾角α,利用公式(1)的線性插值法計算圖像中屬于前景的各像素的亮度值,并逐一記錄在一維度與資料陣Buffer[x][y]相同的像素亮度矩陣Light[x][y]中,表一所示為產(chǎn)生圖像亮度矩陣Light[x][y]的虛擬碼。
表一產(chǎn)生像素亮度矩陣Dx[x][y的虛擬碼
步驟119計算圖像中屬于前景的各像素至其邊界的最短距離d,并根據(jù)最短距離d的值修正在像素亮度矩陣Light[x][y]中對應(yīng)的亮度值;以及步驟120根據(jù)像素亮度矩陣Light[x][y]修正圖像O[x][y]中每一像素的顏色與亮度,以產(chǎn)生一具有立體效果的新圖。
在上述步驟119中,在對像素亮度矩陣Lignt[x][y]澡的每個數(shù)值進行修正前,會先根據(jù)原數(shù)值,建立一修正曲線17,如圖6所示,圖中,In為由法線投影方向與光線投影方向的夾角α所計算出的該像素的亮度,也就是目前正在處理中的像素原有的亮度;In’為非邊緣區(qū)域的亮度;r為0至1之間的常數(shù);ω為邊緣區(qū)域的寬度;ω0為0至ω之間的常數(shù);然后再依計算所得的最短距離d,在圖6的修正曲線中對應(yīng)出新的亮度值In”,最后再將新的亮度值In”取代像素亮度矩陣中的亮度值I,便完成此像素的亮度修正。
有關(guān)步驟120修正圖像O[x][y]的方法是依表二的虛擬碼來進行,請同時參閱圖7,其轉(zhuǎn)換的步驟如下步驟211取得屬性為前景的像素的顏色值,其中顏色值的格式為RGB;步驟212將顏色值的格式轉(zhuǎn)換為具有色調(diào)(H),飽和度(L),亮度(S)的HLS格式;步驟213讀取像素亮度矩陣Light[x][y]中與圖像O[x][y]中屬性為前景的各像素相應(yīng)位置的亮度值,并將之取代圖像O[x][y]中各前景像素原來的亮度值;步驟214再把取代后的像素的HLS格式轉(zhuǎn)換為RGB格式步驟215判斷是否已全部將圖像O[x][y]內(nèi)前景像素的亮度值以像素亮度矩陣Light[x][y]內(nèi)對應(yīng)的新值取代完畢;若為是執(zhí)行步驟217,若為否執(zhí)行下一步驟;步驟216找出圖像O[x][y]內(nèi)下一個屬性為前景的像素的位置,并取出其RGB格式的顏色值,跳至步驟212;步驟217產(chǎn)生一種在觀感上具有立體效果的圖像。
表二修正原圖的顏色值的虛擬碼
>綜上所述,本發(fā)明雖藉由實施例來描述,為符合實際的需要,仍可變化其形式和細節(jié)部分,但這些變化亦不脫離本發(fā)明的精神。
本發(fā)明產(chǎn)生三維圖形的方式,不必在三維空間中預(yù)先建立一標(biāo)準(zhǔn)的三維模型,僅藉由一平面圖像,即可將圖像中的目的圖形轉(zhuǎn)換成一種具立體視覺效果的圖像。
權(quán)利要求
1.一種三維圖像的產(chǎn)生方法,用以將電腦可處理的數(shù)字化圖像中的目的圖形轉(zhuǎn)換成在視覺上具有立體效果的圖像,其特征在于,該方法包含下列步驟a.設(shè)定一夾角值,該夾角值為投射到該目的圖形上的一假想光源的光線與該目的圖形所形成的角度;b.設(shè)定該目的圖形的邊緣寬度值;c.根據(jù)數(shù)字化的圖像產(chǎn)生一具有一前景像素與一背景像素的二色圖;d.根據(jù)該二色圖產(chǎn)生一相應(yīng)的資料矩陣,且該資料矩陣中的每個數(shù)值分別與該二色圖中該前景像素和該背景像素呈一對一的對應(yīng)關(guān)系;e.根據(jù)該資料矩陣與該夾角值,產(chǎn)生一X分量矩陣;f.根據(jù)該資料矩陣與該夾角值,產(chǎn)生一Y分量矩陣;g.根據(jù)該X分量矩陣、該Y分量矩陣以及該夾角值,產(chǎn)生一像素亮度陣列;以及h.根據(jù)像素亮度陣列將該目的圖形轉(zhuǎn)換在視上上具有立體效果的圖像。
2.如權(quán)利要求1所述的三維圖形的產(chǎn)生方法,其特征在于,該前景像素用以表示該圖像的目的圖形的部分。
3.如權(quán)利要求1所述的三維圖形的產(chǎn)生方法,其特征在于,該背景像素用以表示該圖像中非目的圖形的部分。
4.如權(quán)利要求1所述的三維圖形的產(chǎn)生方法,其特征在于,該資料矩陣包含有對應(yīng)于該圖像中每個像素的一加權(quán)總值。
5.如權(quán)利要求4所述的三維圖形的產(chǎn)生方法,其特征在于,該加權(quán)總值用以表示在以該像素為中心,該邊緣寬度值為半徑,所構(gòu)成的圖形區(qū)域內(nèi)該前景像素的密度。
6.如權(quán)利要求4所述的三維圖形的產(chǎn)生方法,其特征在于,該加權(quán)總值用以表示在以該像素為中心,該邊緣寬度值為寬度,所構(gòu)成的十字形區(qū)域內(nèi)該前景像素的密度。
7.如權(quán)利要求1所述的三維圖形的產(chǎn)生方法,其特征在于,該步驟h還包含h1.取得該圖像中任一該前景圖像的顏色值;h2.轉(zhuǎn)換該顏色值的格式;h3.根據(jù)該像素亮度矩陣,更新該前景像素的顏色值;h4.還原該顏色值的格式;h5.判斷該像素內(nèi)的該前景像素的顏色值是否已全部被取代;若為是執(zhí)行步驟h7,若為否執(zhí)行下一步驟;h6.取出該原圖像內(nèi)下一個像素,并取出該像素的顏色值,跳至步驟h2;以及h7.產(chǎn)生具有立體效果的圖像。
8.如權(quán)利要求7所述的三維圖形的產(chǎn)生方法,其特征在于,該前景像素的顏色值為RGB格式。
9.如權(quán)利要求7所述的三維圖形的產(chǎn)生方法,其特征在于,該步驟h2是將RGB格式的顏色值轉(zhuǎn)為HLS格式。
10.如權(quán)利要求9所述的三維圖形的產(chǎn)生方法,其特征在于,該步驟h3是將該前景像素的亮度值以該像素亮度矩陣相應(yīng)位置中的亮度值取代。
全文摘要
本發(fā)明提供一種三維圖形的產(chǎn)生方法,揭示了一種無需藉由二維圖形的信息,即可將電腦可處理的數(shù)字化的平面圖形轉(zhuǎn)換成在視覺上具立體效果的圖形的技術(shù)。根本發(fā)明是在數(shù)字化的平面圖片中預(yù)設(shè)假想光源投射到圖片內(nèi)的目的圖形的角度(夾角值)以及形成立體效果所需的邊緣寬度,然后根據(jù)夾角值及邊緣寬度對圖像中構(gòu)成目的圖形的各像素(前景像素)進行亮度處理,再重新賦予原圖片內(nèi)的目的圖形新的顏色值,如此便可使得圖像中原本是二維的圖形呈現(xiàn)出立體效果。
文檔編號G06T15/00GK1273405SQ9911368
公開日2000年11月15日 申請日期1999年5月6日 優(yōu)先權(quán)日1999年5月6日
發(fā)明者詹浩博, 陳曦 申請人:英業(yè)達集團(南京)電子技術(shù)有限公司