專利名稱:一種基于像素空間掩碼矩陣的形態(tài)漸變徑向色彩填充方法
技術(shù)領(lǐng)域:
本發(fā)明涉及電視節(jié)目制作領(lǐng)域的字幕渲染技術(shù),具體涉及一種基于像素空間掩碼矩陣的形態(tài)漸變徑向色彩填充方法。
背景技術(shù):
由于電視字幕具有獨立的表意功能,作為一種必備的電視節(jié)目要素,電視字幕是一種重要的電視圖文的展現(xiàn)形式。隨著電視頻道、節(jié)目內(nèi)容的細分,各個部門的分工也更加專業(yè)化,對于不同類型節(jié)目的制作,以單一類型的字幕系統(tǒng)已很難滿足要求。另外,電視節(jié)目的日益多樣性和電視觀眾欣賞、鑒賞水平的不斷提高,也要求電視字幕的應(yīng)用模式必然朝著多樣性的方向發(fā)展。
從廣義的角度來說,電視字幕所處理的字幕對象可以分為圖形和文字兩個部分。圖形包括各種規(guī)則形狀的圖形、由基本圖形元素組成的復(fù)合圖形和任意不規(guī)則圖形,文字包括世界上各種語種的文字。
從計算機展現(xiàn)的角度來說,字幕對象渲染的最終目的是根據(jù)圖形化的矢量信息和圖像紋理,采用數(shù)字圖像處理的相關(guān)算法,得到由32位RGBA表示的像素組成的一幀圖像。因此將字幕對象歸一化為一種圖形表達形式,有利于數(shù)字圖像處理算法的統(tǒng)一化。
從計算機圖形學(xué)的角度來說,可以將所有類型的字幕對象視為由一系列直線和曲線組成的圖形。計算機圖形學(xué)的主要研究內(nèi)容就是研究如何在計算機中表示圖形、以及利用計算機進行圖形的計算、處理和顯示的相關(guān)原理與算法。圖形通常由點、線、面、體等幾何元素和灰度、色彩、線型、線寬等非幾何屬性組成。從處理技術(shù)上來看,圖形主要分為兩類,一類是基于線條信息表示的,如工程圖、等高線地圖、曲面的線框圖等,另一類是明暗圖,也就是通常所說的真實感圖形。計算機圖形學(xué)一個主要的目的就是要利用計算機產(chǎn)生令人賞心悅目的真實感圖形。為此,必須建立圖形所描述的場景的幾何表示,再用某種光照模型,計算在假想的光源、紋理、材質(zhì)屬性下的光照明效果。
在計算機圖形學(xué)中,Bezier曲線是一種重要的多項式參數(shù)曲線。平面中的任意N(N>=2)個點都可以構(gòu)成一個Bezier曲線。這N個點稱為Bezier曲線的控制頂點,N個點組成的多邊形稱為Bezier曲線的控制多邊形。在字幕渲染技術(shù)中,可以使用Bezier曲線來表達所有字幕對象的矢量信息,將字幕對象的原始矢量輪廓轉(zhuǎn)化為二次Bezier曲線,并將一個內(nèi)部自相交Bezier封閉曲線分成多個封閉輪廓,根據(jù)交點將一條Bezier線段分割成若干條首尾相連的線段,在字幕矢量輪廓中確定每一條Bezier線段的內(nèi)邊/外邊屬性,根據(jù)內(nèi)邊/外邊屬性對字幕矢量輪廓進行規(guī)并整理,最終得到若干不相交的封閉輪廓。然后,將字幕對象的矢量輪廓離散化為直線段,計算字幕對象的多邊形矢量輪廓的屬性,進一步根據(jù)多邊形的方向和加邊類型,創(chuàng)建出用來加內(nèi)邊和外邊的多邊形矢量輪廓。
當針對字幕對象的矢量信息進行上述處理后,對字幕進行渲染。由于某一渲染區(qū)(渲染基元為一個像素)的渲染屬性取決于其相對于曲線輪廓封閉環(huán)域的位置,因此要按照一定的貼圖順序在貼圖半徑內(nèi)部對原始圖像的每個像素的紋理進行準確的賦值。另外,為了實現(xiàn)基于字幕物體輪廓的真正的漸變效果,還需要基于形態(tài)漸變進行色彩填充。
發(fā)明內(nèi)容
本發(fā)明的目的是針對上述基于曲線輪廓封閉環(huán)域和像素空間掩碼矩陣模型的字幕渲染技術(shù)的實現(xiàn)原理,提供一種基于像素空間掩碼矩陣的形態(tài)漸變徑向色彩填充方法,使得字幕對象的顯示比普通的漸變色貼圖具有更佳的視覺效果。
本發(fā)明的技術(shù)方案如下一種基于像素空間掩碼矩陣的形態(tài)漸變徑向色彩填充方法,包括如下步驟 (1)建立與原始圖像具有相同維數(shù)的像素空間掩碼矩陣,以及一維形態(tài)漸變色彩數(shù)組; (2)確定用于字幕對象渲染的徑向色彩填充的貼圖順序; (3)根據(jù)字幕對象加邊的類型和邊的厚度確定徑向色彩填充的半徑MinR和MaxR; (4)將形態(tài)漸變色彩數(shù)組索引映射到徑向色彩填充半徑MinR和MaxR所表示的兩條等高線圍成的區(qū)間[MinR,MaxR]內(nèi); (5)根據(jù)需要貼圖的圖像中的像素點的位置,進行色彩的賦值或反走樣處理。
進一步,如上所述的基于像素空間掩碼矩陣的形態(tài)漸變徑向色彩填充方法,步驟(2)中字幕對象渲染的徑向色彩填充的貼圖順序為內(nèi)邊、面、外邊、側(cè)邊、影子。
進一步,如上所述的基于像素空間掩碼矩陣的形態(tài)漸變徑向色彩填充方法,步驟(3)中針對N條內(nèi)邊,設(shè)每條邊的厚度為S[i],i∈
,則 第1條內(nèi)邊的MinR=0,MaxR=S
; 第2條內(nèi)邊的MinR=S
,MaxR=MinR+S[1]; 第i條內(nèi)邊的MinR=S[1]+S[2]+...+S[i-2],MaxR=MinR+S[i-1]; 第N條內(nèi)邊的MinR=S[1]+S[2]+...+S[N-2],MaxR=MinR+S[N-1]。
進一步,如上所述的基于像素空間掩碼矩陣的形態(tài)漸變徑向色彩填充方法,步驟(3)中針對面,在不加內(nèi)邊的情況下,MinR=0,MaxR=像素空間掩碼矩陣中像素點到字幕對象曲線輪廓邊界的距離的最大值;在加內(nèi)邊的情況下,MinR=所有內(nèi)邊厚度之和,MaxR=像素空間掩碼矩陣中像素點到字幕對象曲線輪廓邊界的距離的最大值。
進一步,如上所述的基于像素空間掩碼矩陣的形態(tài)漸變徑向色彩填充方法,步驟(3)中設(shè)每條邊的厚度為W[i],i∈
,則 第1條外邊的MinR=0,MaxR=W
; 第2條外邊的MinR=W
,MaxR=MinR+W[1]; 第i條外邊的MinR=W[1]+W[2]+...+W[i-2],MaxR=MinR+W[i-1]; 第M條外邊的MinR=W[1]+W[2]+...+W[M-2],MaxR=MinR+W[M-1]。
進一步,如上所述的基于像素空間掩碼矩陣的形態(tài)漸變徑向色彩填充方法,步驟(3)中針對側(cè)邊,MinR=所有外邊厚度之和,MaxR=MinR+側(cè)邊厚度。
進一步,如上所述的基于像素空間掩碼矩陣的形態(tài)漸變徑向色彩填充方法,步驟(3)中針對影子,MinR=所有外邊厚度之和,MaxR=MinR+影子厚度。
進一步,如上所述的基于像素空間掩碼矩陣的形態(tài)漸變徑向色彩填充方法,步驟(4)中對于[MinR,MaxR]區(qū)間內(nèi)的一個值x,對應(yīng)的形態(tài)漸變色彩數(shù)組的索引為F(x)=k*(x-MinR)/(MaxR-MinR)x∈[MinR,MaxR],k為形態(tài)漸變色彩數(shù)組中元素的個數(shù)。
進一步,如上所述的基于像素空間掩碼矩陣的形態(tài)漸變徑向色彩填充方法,步驟(5)中如果需要貼圖的圖像中的像素點在徑向色彩填充半徑MinR和MaxR所表示的兩條等高線圍成的區(qū)間內(nèi),則直接進行色彩賦值;如果需要貼圖的圖像中的像素點在徑向色彩填充半徑MinR和MaxR所表示的兩條等高線上,則根據(jù)像素空間掩碼矩陣索引處對應(yīng)的像素到字幕對象輪廓邊界的最短距離Border值以及經(jīng)過該像素的所有邊界圍成的多邊形的面積Area值進行反走樣處理。
更進一步,如上所述的基于像素空間掩碼矩陣的形態(tài)漸變徑向色彩填充方法,步驟(5)中,設(shè)需要貼圖的圖像中的像素點為P[i][j],如果P[i][j]在徑向色彩填充半徑MinR和MaxR所表示的兩條等高線圍成的區(qū)間內(nèi),則P[i][j]的色彩值為RGBA(P[i][j])=RGBA(C[F(M[i][j].Border)]);如果P[i][j]在徑向色彩填充半徑MinR和MaxR所表示的兩條等高線上,則RGBA(P[i][j])=RGBA(P[i][j])*(1-M[i][j].Area)+RGBA(C[F(M[i][j].Border)])*M[i][j].Area; 其中, RGBA(P[i][j])為需要貼像中索引[i,j]處的RGBA的值; M[i][j].Border為像素空間掩碼矩陣中索引[i,j]處對應(yīng)的像素到字幕對象輪廓邊界的最短距離Border值; M[i][j].Area為像素空間掩碼矩陣中索引[i,j]處對應(yīng)的經(jīng)過該像素的所有邊界圍成的多邊形的面積Area值; RGBA(C[F(M[i][j].Border)])為形態(tài)漸變色彩數(shù)組中索引為F(M[i][j].Border)處的RGBA值。
上述F(M[i][j].Border)的計算公式為F(M[i][j].Border)=k*(M[i][j].Border-MinR)/(MaxR-MinR),k為形態(tài)漸變色彩數(shù)組中元素的個數(shù)。
本發(fā)明的有益效果如下本發(fā)明按照一定的貼圖順序,根據(jù)像素空間掩碼矩陣和形態(tài)漸變色彩數(shù)組,在貼圖半徑內(nèi)部對原始圖像的每個像素的色彩進行徑向色彩填充,同時對半徑邊緣的像素進行反走樣處理。通過按照物體的矢量輪廓進行徑向的漸變色彩處理,使?jié)u變色的效果更加自然,視覺感受更加強烈,從而便于頻道節(jié)目包裝,提高收視質(zhì)量,提升電視節(jié)目制播機構(gòu)的整體形象,滿足公眾的欣賞要求,為電視節(jié)目制播機構(gòu)取得更好的經(jīng)濟效益。
圖1為基于像素空間掩碼矩陣的形態(tài)漸變徑向色彩填充方法的原理示意圖; 圖2為根據(jù)像素空間掩碼矩陣模型等高線劃分不同渲染區(qū)域的一種情況示意圖; 圖3為根據(jù)像素空間掩碼矩陣模型等高線劃分不同渲染區(qū)域的另一種情況示意圖; 圖4為線段端點的加邊方向的向量與加邊方向的角度關(guān)系示意圖; 圖5為逐層計算像素點到邊界的最短距離的方法示意圖。
具體實施例方式 下面結(jié)合附圖和具體實施例對本發(fā)明進行詳細的描述。
由于目前的用于電視節(jié)目制作的字幕系統(tǒng)中字幕渲染普遍存在渲染效率低下、邊緣鋸齒效應(yīng)、小字模糊不清晰、文字筆畫粗細不均勻、漸變效果不真實、無法實現(xiàn)多邊多影渲染效果、無法實現(xiàn)藝術(shù)字效果等一系列技術(shù)上和應(yīng)用上的問題,因此,可以通過將字幕對象的矢量信息轉(zhuǎn)化為一個基于等高線的像素掩碼矩陣,在此基礎(chǔ)上進行字幕渲染的技術(shù)來加以解決,這一技術(shù)稱作基于曲線輪廓的封閉環(huán)域和像素掩碼矩陣的字幕渲染方法(具體內(nèi)容可參見同期申請的專利)。
上述方法的關(guān)鍵步驟首先是有限封閉環(huán)域的生成。有限封閉環(huán)域為有限個內(nèi)環(huán)、外環(huán)(內(nèi)、外環(huán)方向相反)定義的一個多連通閉區(qū)域,內(nèi)環(huán)必須在一個外環(huán)內(nèi)。一個輸入圖元由一個或多個封閉輪廓組成,輪廓以首尾連結(jié)的二次Bezier曲線表示。對封閉輪廓進行曲線相交檢測,通過裁減曲線、并歸輪廓,生成有限環(huán)域的內(nèi)外環(huán)。
曲線的相交檢測利用外接矩形檢測選取可能相交曲線對以提高效率,然后遞歸法對可能相交的Bezier曲線對二分法分割進行局部曲線段的包圍盒檢測,當分割的曲線段滿足直線擬和精度時,用直線規(guī)則求交點,根據(jù)交點分割相交曲線對。計算交點相連的曲線的方向進行內(nèi)、外環(huán)分類測試,裁減不滿足內(nèi)、外環(huán)屬性的曲線,即刪除被一個外環(huán)包含卻與外環(huán)方向一致的曲線或者被內(nèi)環(huán)包含的與內(nèi)環(huán)方向一致的曲線。連接首尾端點重合的曲線,生成封閉的內(nèi)外環(huán)。
算法的思想基于某一渲染區(qū)(渲染基元為一個象素)的渲染屬性取決于其相對于環(huán)域的位置,即以原始輪廓環(huán)域為0距線,通過計算渲染基元相對0距線的距離得到像素掩碼矩陣,由像素掩碼矩陣的等高線劃分不同的渲染區(qū)。渲染區(qū)的靈活劃分,可以實現(xiàn)多層圖元渲染;不同的距離計算方式得到不同的等高線,從而實現(xiàn)不同的區(qū)域邊界導(dǎo)角特性;像素掩碼矩陣做深度信息等轉(zhuǎn)換,實現(xiàn)浮雕等立體效果。
因此,算法的另一關(guān)鍵步驟就是像素掩碼矩陣中各個屬性的計算。離散化曲線環(huán)域,根據(jù)離散化的輪廓點鏈的前進方向標記距離映射圖中各基元的符號(例如,外環(huán)逆時針,則左為正右為負,點鏈經(jīng)過的基元為零)。通過對點鏈中各點的方向矢量及其前后點的方向角平分線方向矢量圍成的有限區(qū)域范圍內(nèi)計算渲染基元的距離,在映射圖中記錄各基元的絕對值最小的距離值。
基于上述原理,在將一個字幕對象的Bezier曲線矢量輪廓離散化為多邊形矢量G之后,進一步根據(jù)多邊形的方向和加邊類型,創(chuàng)建出用來加內(nèi)邊的多邊形矢量G1和用來加外邊的多邊形矢量G2。然后,就可以對字幕對象進行后續(xù)渲染。
本發(fā)明首先需要建立與原始圖像具有相同維數(shù)的像素空間掩碼矩陣M,以及一維形態(tài)漸變色彩數(shù)組C,如圖1所示。
形態(tài)漸變色彩數(shù)組C是根據(jù)字幕渲染所需的色彩變化而確定的,只需一行參與運算,因此為一維形式,數(shù)組中元素的個數(shù)k可以根據(jù)需要來確定。
像素空間掩碼矩陣M中每個像素點包括以下屬性數(shù)據(jù) (1).一個像素到邊界的最短距離Border。該值在加內(nèi)邊、外邊時使用。根據(jù)方角邊、尖角邊、圓角邊的不同類型,這個距離有不同的意義。
(2).一個像素到最外側(cè)邊的側(cè)邊方向的距離Side。該值在加側(cè)邊時使用。
(3).經(jīng)過一個像素的所有邊界圍成的多邊形的面積Area。該值在對邊界像素進行反走樣貼圖時使用。因此首先要區(qū)分內(nèi)部像素和邊界像素對于內(nèi)部像素來說,該值為固定的值(512*512);對于邊界像素而言,該值是一個小于等于512*512的值,表示通過該像素的邊與該像素矩形(高和寬均為512)圍成多邊形的面積。
(4).一個像素的類型Type。該值用來表示一個像素是側(cè)邊邊界、外邊邊界、內(nèi)邊邊界、內(nèi)部像素。
(5).一個像素是否已經(jīng)進行了反走樣處理的標志bAntialiasing。使用這個布爾變量以避免對同一個像素進行多次的反走樣處理。
以上的Border、Side、Area的值都是在512*512的坐標空間中,因此,可以將以上這些數(shù)據(jù)當作一個像素的掩碼。以上屬性數(shù)據(jù)的具體確定方法可以參見同期中請的專利,此處僅對本發(fā)明中需要用到的一個像素到邊界的最短距離Border值以及經(jīng)過一個像素的所有邊界圍成的多邊形的面積Area值的計算進行介紹。
如圖4、圖5所示,計算一個像素到邊界的最短距離Border值的方法如下 (1)在字幕對象的多邊形矢量輪廓邊界上選取直線段(P0,P1),確定直線段(P0,P1)兩個端點P0、P1的坐標(P0.x,P0.y)、(P1.x,P1.y)以及兩個端點的加邊方向的向量(P0.dx,P0.dy)、(P1.dx,P1.dy); 加邊方向的向量與加邊方向的角度的關(guān)系如下 P0.dx=Cos(A0)P0.dy=Sin(A0) P1.dx=Cos(A1)P1.dy=Sin(A1) 其中,P0點的加邊方向的角度為A0,P1點的加邊方向的角度為A1。
(2)設(shè)定沿加邊方向逐層計算的距離k、步長s,根據(jù)P0、P1的加邊方向的向量依次計算P0、P1在加邊方向上所對應(yīng)的點P2、P3、P4、P5的坐標; P2、P4的坐標根據(jù)P0點來計算 P2.x=P0.x+(k-s)*P0.dx; P2.y=P0.y+(k-s)*P0.dy; P4.x=P0.x+k*P0.dx; P4.y=P0.y+k*P0.dy; P3、P5的坐標根據(jù)P1點來計算 P3.x=P1.x+(k-s)*P1.dx; P3.y=P1.y+(k-s)*P1.dy; P5.x=P1.x+k*P1.dx; P5.y=P1.y+k*P1.dy。
(3)由P2、P3、P4、P5點圍成四邊形,遍歷四邊形內(nèi)的所有像素點,根據(jù)點到直線垂直距離的計算公式,計算每個點到直線段(P0,P1)的距離。
計算經(jīng)過一個像素的所有字幕對象的矢量輪廓線段與像素邊界圍成的多邊形面積Area值的方法如下 (a)遍歷字幕對象的多邊形矢量輪廓,針對字幕對象的N個封閉多邊形,取出一個多邊形Q[i]; (b)遍歷多邊形Q[i]中的每條邊,針對Q[i]中的M條邊,取出一條邊L[j]; (c)根據(jù)邊L[j]前后兩個端點的坐標,確定邊L[j]經(jīng)過的像素,設(shè)L[j]經(jīng)過了F個像素,分別是C
、C[1]、......、C[F-1],F(xiàn)≥1; (d)從L[j]開始,遍歷Q[i]中的所有M條邊,分別是L[j]到L[M-1],L
到L[j-1],將經(jīng)過像素C[k]的邊與像素C[k]的正方形邊界的交點坐標計算出來; (e)根據(jù)步驟(d)計算出來的交點坐標,由經(jīng)過像素C[k]的邊以及像素C[k]的正方形邊界構(gòu)成一個多邊形,并將該多邊形存放在一個臨時數(shù)組中,如果臨時數(shù)組中已經(jīng)存在一個相同的多邊形,就直接轉(zhuǎn)至步驟(f);否則,根據(jù)多邊形的頂點坐標和個數(shù),采用多邊形面積計算公式計算出邊L[j]對像素C[k]的面積貢獻的值A(chǔ)[j],并累加到像素C[k]原來的像素面積Area值中; (f)重復(fù)步驟(d),直到計算完邊L[j]對所有經(jīng)過像素的面積貢獻的值; (g)重復(fù)步驟(b),直到處理完多邊形Q[i]中的每條邊; (h)重復(fù)步驟(a),直到處理完字幕對象中的每個多邊形。
步驟(e)中多邊形面積計算公式為 B=0.5×fabs(Y
×(X[N-1]-X[1])+Y[N-1]×(X[N-2]-X
)) 其中,多邊形的N個頂點的坐標為(X
,Y
)--(X[N-1],Y[N-1])。
在上述像素空間掩碼矩陣模型中,具有相同Border值的點構(gòu)成了一系列等高線,利用這些等高線,就形成了多個渲染區(qū)域。外邊個數(shù)、內(nèi)邊個數(shù)、側(cè)邊個數(shù)、影子個數(shù)與渲染區(qū)域個數(shù)的關(guān)系如下,假設(shè)一個字幕對象的外邊個數(shù)為W、內(nèi)邊個數(shù)為N、側(cè)邊個數(shù)為C、影子個數(shù)為Y 則渲染區(qū)域個數(shù)X為X=W+(N>1?(N+1)N)+C+Y+1 上式中(N>1?(N+1)N)的含義為N>1時為(N+1),否則為N。
圖2所示的字幕對象具有2個外邊、3個內(nèi)邊、2個側(cè)邊、2個影子,共劃分11個渲染區(qū)域 (1).渲染區(qū)域1外邊2與外邊1之間的區(qū)域 (2).渲染區(qū)域2外邊1與原始輪廓之間的區(qū)域 (3).渲染區(qū)域3原始輪廓與內(nèi)邊1之間的區(qū)域 (4).渲染區(qū)域4內(nèi)邊1與內(nèi)邊2之間的區(qū)域 (5).渲染區(qū)域5內(nèi)邊2與內(nèi)邊3之間的區(qū)域 (6).渲染區(qū)域6內(nèi)邊3之內(nèi)的面區(qū)域 (7).渲染區(qū)域7內(nèi)邊3與面之間的區(qū)域 (8).渲染區(qū)域8外邊2與側(cè)邊1之間的區(qū)域 (9).渲染區(qū)域9側(cè)邊1與側(cè)邊2之間的區(qū)域 (10).渲染區(qū)域10影子1的區(qū)域 (11).渲染區(qū)域11影子2的區(qū)域 圖3所示的字幕對象具有2個外邊、1個內(nèi)邊、1個側(cè)邊、1個影子,共劃分6個渲染區(qū)域。
(1).渲染區(qū)域1外邊2與外邊1之間的區(qū)域 (2).渲染區(qū)域2外邊1與原始輪廓之間的區(qū)域 (3).渲染區(qū)域3原始輪廓與內(nèi)邊之間的區(qū)域 (4).渲染區(qū)域4內(nèi)邊之內(nèi)的面區(qū)域 (5).渲染區(qū)域5外邊2與側(cè)邊之間的區(qū)域 (6).渲染區(qū)域6影子的區(qū)域 建立了像素空間掩碼矩陣M和形態(tài)漸變色彩數(shù)組C后,就需要進行如下形態(tài)漸變徑向色彩填充的步驟 第一,確定徑向填充的順序。在基于像素空間掩碼的形態(tài)漸變徑向色彩填充中,字幕對象渲染貼圖的順序為內(nèi)邊(多個)、面、外邊(多個)、側(cè)邊、影子。
第二,確定徑向填充半徑MinR和MaxR。MinR和MaxR表示的是兩條等高線。
(1).針對N條內(nèi)邊,假設(shè)每條邊的厚度為S[i],i∈
,則 第1條內(nèi)邊的MinR=0,MaxR=S
; 第2條內(nèi)邊的MinR=S
,MaxR=MinR+S[1]; 第i條內(nèi)邊的MinR=S[1]+S[2]+...+S[i-2],MaxR=MinR+S[i-1]; 第N條內(nèi)邊的MinR=S[1]+S[2]+...+S[N-2],MaxR=MinR+S[N-1]; (2).針對面,則 如果不加內(nèi)邊,則MinR=0,MaxR=像素空間掩碼矩陣MASK中最大的Border值; 如果加內(nèi)邊,則MinR=所有內(nèi)邊厚度之和,MaxR=像素空間掩碼矩陣MASK中最大的Border值; (3).針對M條外邊,假設(shè)每條邊的厚度為W[i],i∈
,則 第1條外邊的MinR=0,MaxR=W
; 第2條外邊的MinR=W
,MaxR=MinR+W[1]; 第i條外邊的MinR=W[1]+W[2]+...+W[i-2],MaxR=MinR+W[i-1]; 第M條外邊的MinR=W[1]+W[2]+...+W[M-2],MaxR=MinR+W[M-1]; (4).針對側(cè)邊MinR=所有外邊厚度之和,MaxR=MinR+側(cè)邊厚度; (5).針對影子MinR=所有外邊厚度之和,MaxR=MinR+影子厚度; 第三,形態(tài)漸變色彩數(shù)組COLOR的映射。形態(tài)漸變色彩數(shù)組COLOR,簡稱為C,C中包含的元素個數(shù)為k。需要將數(shù)組索引
映射到[MinR,MaxR]的區(qū)間內(nèi)。即,對于[MinR,MaxR]區(qū)間內(nèi)的一個值x,對應(yīng)的形態(tài)漸變色彩數(shù)組的索引為 F(x)=k*(x-MinR)/(MaxR-MinR)x∈[MinR,MaxR] 第四,徑向填充。假設(shè)像素空間掩碼矩陣為MASK,簡稱M,形態(tài)漸變色彩數(shù)組COLOR,簡稱為C,需要貼圖的圖像為PICTURE,簡稱P。M、P的維數(shù)相同,假設(shè)為w和h。C中包含的元素個數(shù)為k。對于P中的一個點P[i][j],i∈
,j∈
,色彩RGBA的值為 (1).根據(jù)像素空間掩碼的Border值來判斷像素點P[i][j]是否位于(MinR,MaxR)表示的等高線內(nèi); 如果(M[i][i].Border<MinR或者M[i][i].Border>MaxR),則該像素點不在這個等高線內(nèi),此時不做任何處理。
否則該像素點不這個等高線內(nèi),進行如下的后續(xù)處理。
(2).根據(jù)像素空間掩碼的Type值、MinR、MaxR的值來判斷像素點P[i][j]是等高線的內(nèi)點還是等高線上的點;滿足如下條件之一的點為等高線內(nèi)點
M[i][i].Type?。竭吔?
MinR?。?而且MaxR!=0 否則該像素點就是等高線上的點。
(3).根據(jù)上述得到的結(jié)果,進行色彩的賦值。
對于等高線的內(nèi)點,直接進行色彩賦值即可;對于等高線上的點,需要根據(jù)像素空間掩碼的Area值進行反走樣處理。
如果P[i][j]是等高線內(nèi)的點,則P[i][j]的色彩值為RGBA(P[i][j])=RGBA(C[F(M[i][j].Border)])
如果P[i][j]是等高線上的點,則RGBA(P[i][j])=RGBA(P[i][j])*(1-M[i][j].Area)+RGBA(C[F(M[i][j].Border)])*M[i][j].Area RGBA(P[i][j])為需要貼像PICTURE中索引[i,j]處的RGBA的值; M[i][j].Border和M[i][j].Area為像素空間掩碼矩陣M中索引[i,j]處對應(yīng)的Border和Area的值; RGBA(C[F(M[i][j].Border)])為形態(tài)漸變色彩數(shù)組COLOR中索引為F(M[i][j].Border)處的RGBA值。F(M[i][j].Border)的計算公式為F(M[i][j].Border)=k*(M[i][j].Border-MinR)/(MaxR-MinR)。
本發(fā)明所述的方法并不限于具體實施方式
中所述的實施例,本領(lǐng)域技術(shù)人員根據(jù)本發(fā)明的技術(shù)方案得出其他的實施方式,同樣屬于本發(fā)明的技術(shù)創(chuàng)新范圍。
權(quán)利要求
1.一種基于像素空間掩碼矩陣的形態(tài)漸變徑向色彩填充方法,包括如下步驟
(1)建立與原始圖像具有相同維數(shù)的像素空間掩碼矩陣,以及一維形態(tài)漸變色彩數(shù)組;
(2)確定用于字幕對象渲染的徑向色彩填充的貼圖順序;
(3)根據(jù)字幕對象加邊的類型和邊的厚度確定徑向色彩填充的半徑MinR和MaxR;
(4)將形態(tài)漸變色彩數(shù)組索引映射到徑向色彩填充半徑MinR和MaxR所表示的兩條等高線圍成的區(qū)間[MinR,MaxR]內(nèi);
(5)根據(jù)需要貼圖的圖像中的像素點的位置,進行色彩的賦值或反走樣處理。
2.如權(quán)利要求1所述的基于像素空間掩碼矩陣的形態(tài)漸變徑向色彩填充方法,其特征在于步驟(2)中字幕對象渲染的徑向色彩填充的貼圖順序為內(nèi)邊、面、外邊、側(cè)邊、影子。
3.如權(quán)利要求1或2所述的基于像素空間掩碼矩陣的形態(tài)漸變徑向色彩填充方法,其特征在于步驟(3)中針對N條內(nèi)邊,設(shè)每條邊的厚度為S[i],i∈
,則
第1條內(nèi)邊的MinR=0,MaxR=S
;
第2條內(nèi)邊的MinR=S
,MaxR=MinR+S[1];
第i條內(nèi)邊的MinR=S[1]+S[2]+...+S[i-2],MaxR=MinR+S[i-1];
第N條內(nèi)邊的MinR=S[1]+S[2]+...+S[N-2],MaxR=MinR+S[N-1]。
4.如權(quán)利要求1或2所述的基于像素空間掩碼矩陣的形態(tài)漸變徑向色彩填充方法,其特征在于步驟(3)中設(shè)每條邊的厚度為W[i],i∈
,則
第1條外邊的MinR=0,MaxR=W
;
第2條外邊的MinR=W
,MaxR=MinR+W[1];
第i條外邊的MinR=W[1]+W[2]+...+W[i-2],MaxR=MinR+W[i-1];
第M條外邊的MinR=W[1]+W[2]+...+W[M-2],MaxR=MinR+W[M-1]。
5.如權(quán)利要求1或2所述的基于像素空間掩碼矩陣的形態(tài)漸變徑向色彩填充方法,其特征在于步驟(3)中針對側(cè)邊,MinR=所有外邊厚度之和,MaxR=MinR+側(cè)邊厚度。
6.如權(quán)利要求1或2所述的基于像素空間掩碼矩陣的形態(tài)漸變徑向色彩填充方法,其特征在于步驟(3)中針對影子,MinR=所有外邊厚度之和,MaxR=MinR+影子厚度。
7.如權(quán)利要求1或2所述的基于像素空間掩碼矩陣的形態(tài)漸變徑向色彩填充方法,其特征在于步驟(4)中對于[MinR,MaxR]區(qū)間內(nèi)的一個值x,對應(yīng)的形態(tài)漸變色彩數(shù)組的索引為F(x)=k*(x-MinR)/(MaxR-MinR)x∈[MinR,MaxR],k為形態(tài)漸變色彩數(shù)組中元素的個數(shù)。
8.如權(quán)利要求1或2所述的基于像素空間掩碼矩陣的形態(tài)漸變徑向色彩填充方法,其特征在于步驟(5)中如果需要貼圖的圖像中的像素點在徑向色彩填充半徑MinR和MaxR所表示的兩條等高線圍成的區(qū)間內(nèi),則直接進行色彩賦值;如果需要貼圖的圖像中的像素點在徑向色彩填充半徑MinR和MaxR所表示的兩條等高線上,則根據(jù)像素空間掩碼矩陣索引處對應(yīng)的像素到字幕對象輪廓邊界的最短距離Border值以及經(jīng)過該像素的所有邊界圍成的多邊形的面積Area值進行反走樣處理。
9.如權(quán)利要求8所述的基于像素空間掩碼矩陣的形態(tài)漸變徑向色彩填充方法,其特征在于步驟(5)中,設(shè)需要貼圖的圖像中的像素點為P[i][j],如果P[i][j]在徑向色彩填充半徑MinR和MaxR所表示的兩條等高線圍成的區(qū)間內(nèi),則P[i][j]的色彩值為RGBA(P[i][j])=RGBA(C[F(M[i][j].Border)]);如果P[i][j]在徑向色彩填充半徑MinR和MaxR所表示的兩條等高線上,則RGBA(P[i][j])=RGBA(P[i][j])*(1-M[i][j].Area)+RGBA(C[F(M[i][j].Border)])*M[i][j].Area;
其中,
RGBA(P[i][j])為需要貼像中索引[i,j]處的RGBA的值;
M[i][j].Border為像素空間掩碼矩陣中索引[i,j]處對應(yīng)的像素到字幕對象輪廓邊界的最短距離Border值;
M[i][j].Area為像素空間掩碼矩陣中索引[i,j]處對應(yīng)的經(jīng)過該像素的所有邊界圍成的多邊形的面積Area值;
RGBA(C[F(M[i][j].Border)])為形態(tài)漸變色彩數(shù)組中索引為F(M[i][j].Border)處的RGBA值。
10.如權(quán)利要求9所述的基于像素空間掩碼矩陣的形態(tài)漸變徑向色彩填充方法,其特征在于所述F(M[i][j].Border)的計算公式為F(M[i][j].Border)=k*(M[i][j].Border-MinR)/(MaxR-MinR),k為形態(tài)漸變色彩數(shù)組中元素的個數(shù)。
全文摘要
本發(fā)明涉及電視節(jié)目制作領(lǐng)域的字幕渲染技術(shù),具體涉及一種基于像素空間掩碼矩陣的形態(tài)漸變徑向色彩填充方法。該方法按照一定的貼圖順序,根據(jù)像素空間掩碼矩陣和形態(tài)漸變色彩數(shù)組,在貼圖半徑內(nèi)部對原始圖像的每個像素的色彩進行徑向色彩填充,同時對半徑邊緣的像素進行反走樣處理。通過按照物體的矢量輪廓進行徑向的漸變色彩處理,使?jié)u變色的效果更加自然,視覺感受更加強烈,從而便于頻道節(jié)目包裝,提高收視質(zhì)量,提升電視節(jié)目制播機構(gòu)的整體形象,滿足公眾的欣賞要求,為電視節(jié)目制播機構(gòu)取得更好的經(jīng)濟效益。
文檔編號G06T11/00GK101764935SQ20081022585
公開日2010年6月30日 申請日期2008年11月4日 優(yōu)先權(quán)日2008年11月4日
發(fā)明者吳正斌 申請人:新奧特(北京)視頻技術(shù)有限公司