專利名稱:一種在視頻中實現(xiàn)火焰特效的方法和裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及視頻圖像處理技術(shù),更具體地說,涉及一種在視頻中實現(xiàn)火焰特效的方法和裝置。
背景技術(shù):
為美化軟件界面,提高軟件的視覺效果,在一般的商業(yè)軟件中,幾乎每一幅圖像的顯示都采用了圖像特效顯示,如Windows系統(tǒng)的屏幕保護程序就采用了各種各樣的圖像特效顯示,使人感到耳目一新。
例如在視頻中添加火焰特效就為許多用戶所青睞,但是目前在視頻中實現(xiàn)火焰特效的算法較為復(fù)雜,運算效率較低,需耗費大量的系統(tǒng)資源,這樣會導(dǎo)致添加有火焰特效的視頻顯示不流暢,無法達到預(yù)期的效果。因此,如何提高火焰特效添加過程中的運算效率及提高所得到的特效效果,以便于更好地實現(xiàn)對視頻的添加火焰特效,是人們一直研究在的問題。發(fā)明內(nèi)容
本發(fā)明要解決的技術(shù)問題在于,針對現(xiàn)有技術(shù)的上述缺陷,提供一種運算效率高、 特效效果好的在視頻中實現(xiàn)火焰特效的方法和裝置。
本發(fā)明解決其技術(shù)問題所采用的技術(shù)方案是
構(gòu)造一種在視頻中實現(xiàn)火焰特效的方法,其中,所述方法包括步驟
A、讀取一幀視頻圖像數(shù)據(jù),根據(jù)所述視頻圖像的大小初始化需要添加的火焰圖像的大小,設(shè)定所述火焰圖像在所述視頻圖像中的位置參數(shù)、所述火焰圖像的高度參數(shù)及寬度參數(shù),并存儲;
B、生成與所述視頻圖像相對應(yīng)的火焰圖像數(shù)據(jù),并存儲在火焰數(shù)據(jù)存儲模塊中;
C、根據(jù)所述火焰圖像在所述視頻圖像中的位置參數(shù)、所述火焰圖像的高度參數(shù)及寬度參數(shù),將所述火焰數(shù)據(jù)存儲模塊中當(dāng)前存儲的火焰圖像數(shù)據(jù)疊加到所述視頻圖像中;
D、刪除所述火焰數(shù)據(jù)存儲模塊中當(dāng)前存儲的火焰圖像數(shù)據(jù);
E、判斷是否已讀取完全部需要添加火焰特效的視頻圖像,如果是,則結(jié)束操作,否則重復(fù)執(zhí)行步驟A,讀取下一幀視頻圖像數(shù)據(jù)。
本發(fā)明所述的方法,其中,所述步驟B包括
Bi、初始化火焰顏色調(diào)色板,所述火焰顏色調(diào)色板中含有預(yù)設(shè)的數(shù)值到火焰顏色值的映射關(guān)系;
B2、根據(jù)所述火焰圖像在所述視頻圖像中的位置參數(shù),得到所述視頻圖像中的火焰區(qū)域,并在所述火焰區(qū)域的最下端隨機生成火源點,定義所述火源點的數(shù)值;
B3、根據(jù)所述火源點的數(shù)值生成所述火焰區(qū)域中除火源點以外的其余火焰點的數(shù)值;
B4、根據(jù)所述火源點的數(shù)值以及其余火焰點的數(shù)值,從所述火焰顏色調(diào)色板中獲取對應(yīng)的火焰顏色值,生成所述火焰圖像數(shù)據(jù)。
本發(fā)明所述的方法,其中,所述步驟Bl包括
將所述火焰圖像由所述火源點處到火焰頂部分為四個漸變顏色范圍;
計算每一個所述漸變顏色范圍的漸變顏色值;
根據(jù)所述漸變顏色值計算每一個所述漸變顏色范圍內(nèi)的火焰顏色值,得到所述預(yù)設(shè)的數(shù)值到所述火焰顏色值的映射關(guān)系。
本發(fā)明所述的方法,其中,所述步驟B3包括
根據(jù)火焰圖像在所述視頻圖像中的位置參數(shù)、所述火焰圖像的高度參數(shù)及寬度參數(shù),從所述火源點開始,逐行往上遍歷所述火焰圖像的各個像素點;
取各個像素點的八鄰域均值,得到每一火焰點的數(shù)值。
本發(fā)明所述的方法,其中,所述步驟C包括
讀取所述火焰圖像在所述視頻圖像中的位置參數(shù)、所述火焰圖像的高度參數(shù)及寬度參數(shù);
讀取所述火焰數(shù)據(jù)存儲模塊中當(dāng)前存儲的火焰圖像數(shù)據(jù);
利用圖像疊加原理,將所述火焰圖像數(shù)據(jù)疊加到所述視頻圖像中。
本發(fā)明還提供了一種在視頻中實現(xiàn)火焰特效的裝置,其中,包括
參數(shù)設(shè)置模塊,用于讀取一幀視頻圖像數(shù)據(jù),根據(jù)所述視頻圖像的大小初始化需要添加的火焰圖像的大小,設(shè)定所述火焰圖像在所述視頻圖像中的位置參數(shù)、所述火焰圖像的高度參數(shù)及寬度參數(shù),并存儲;
火焰數(shù)據(jù)生成模塊,用于生成與所述視頻圖像相對應(yīng)的火焰圖像數(shù)據(jù),并存儲在火焰數(shù)據(jù)存儲模塊中;
火焰數(shù)據(jù)存儲模塊,用于存儲所述火焰圖像數(shù)據(jù);
圖像處理模塊,用于根據(jù)所述火焰圖像在所述視頻圖像中的位置參數(shù)、所述火焰圖像的高度參數(shù)及寬度參數(shù),將所述火焰數(shù)據(jù)存儲模塊中當(dāng)前存儲的火焰圖像數(shù)據(jù)疊加到所述視頻圖像中;
存儲管理模塊,用于刪除所述火焰數(shù)據(jù)存儲模塊中當(dāng)前存儲的火焰圖像數(shù)據(jù);
判斷模塊,用于判斷是否已讀取完全部需要添加火焰特效的視頻圖像,如果是,則結(jié)束操作,否則觸發(fā)所述參數(shù)設(shè)置模塊,讀取下一幀視頻圖像數(shù)據(jù)。
本發(fā)明所述的裝置,其中,所述火焰數(shù)據(jù)生成模塊包括
調(diào)色板初始化單元,用于初始化火焰顏色調(diào)色板,所述火焰顏色調(diào)色板中含有預(yù)設(shè)的數(shù)值到火焰顏色值的映射關(guān)系;
火源點生成單元,用于根據(jù)所述火焰圖像在所述視頻圖像中的位置參數(shù),得到所述視頻圖像中的火焰區(qū)域,并在所述火焰區(qū)域的最下端隨機生成火源點,定義所述火源點的數(shù)值;
火焰點生成單元,用于根據(jù)所述火源點的數(shù)值生成所述火焰區(qū)域中除火源點以外的其余火焰點的數(shù)值;
火焰圖像數(shù)據(jù)產(chǎn)生單元,用于根據(jù)所述火源點的數(shù)值以及其余火焰點的數(shù)值,從所述火焰顏色調(diào)色板中獲取對應(yīng)的火焰顏色值,生成所述火焰圖像數(shù)據(jù)。
本發(fā)明所述的裝置,其中,所述調(diào)色板初始化單元包括
范圍劃分子單元,用于將所述火焰圖像由所述火源點處到火焰頂部分為四個漸變顏色范圍;
漸變顏色值計算子單元,用于計算每一個所述漸變顏色范圍的漸變顏色值;
映射關(guān)系產(chǎn)生子單元,用于根據(jù)所述漸變顏色值計算每一個所述漸變顏色范圍內(nèi)的火焰顏色值,得到所述預(yù)設(shè)的數(shù)值到所述火焰顏色值的映射關(guān)系。
本發(fā)明所述的裝置,其中,所述火焰點生成單元包括
像素點讀取子單元,用于根據(jù)火焰圖像在所述視頻圖像中的位置參數(shù)、所述火焰圖像的高度參數(shù)及寬度參數(shù),從所述火源點開始,逐行往上遍歷所述火焰圖像的各個像素占.^ \\\
數(shù)值計算子單元,用于取各個像素點的八鄰域均值,得到每一火焰點的數(shù)值。
本發(fā)明所述的裝置,其中,所述圖像處理模塊包括
參數(shù)讀取單元,用于讀取所述火焰圖像在所述視頻圖像中的位置參數(shù)、所述火焰圖像的高度參數(shù)及寬度參數(shù);
火焰圖像數(shù)據(jù)讀取單元,用于讀取所述火焰數(shù)據(jù)存儲模塊中當(dāng)前存儲的火焰圖像數(shù)據(jù);
圖像疊加單元,用于利用圖像疊加原理,將所述火焰圖像數(shù)據(jù)疊加到所述視頻圖像中。
本發(fā)明的有益效果在于通過讀取視頻圖像數(shù)據(jù),初始化火焰圖像大小,并設(shè)定火焰圖像在視頻圖像中的位置參數(shù),以及火焰圖像的高度參數(shù)和寬度參數(shù),再生成與該視頻圖像相對應(yīng)的火焰圖像數(shù)據(jù),然后將火焰圖像數(shù)據(jù)加入到對應(yīng)的視頻圖像中,完成火焰特效在視頻中的實現(xiàn)過程。在該過程中,存入到火焰數(shù)據(jù)存儲模塊中的火焰圖像數(shù)據(jù)在每一幀視頻圖像完成火焰圖像添加后即被刪除,以便于存儲用于下一幀視頻圖像的火焰圖像數(shù)據(jù),這樣可以重復(fù)使用同一個內(nèi)存塊,避免重復(fù)申請內(nèi)存塊分配及釋放內(nèi)存,節(jié)省資源,可實現(xiàn)在視頻圖像中實時添加特效,且運算效率更高。由于是針對每一幀視頻圖像分別實時添加火焰圖像,因此可以對添加過的視頻圖像進行實時預(yù)覽。
下面將結(jié)合附圖及實施例對本發(fā)明作進一步說明,附圖中
圖1是本發(fā)明較佳實施例的在視頻中實現(xiàn)火焰特效的方法流程圖2是圖1所示的方法SlOO中火焰圖像數(shù)據(jù)產(chǎn)生流程圖3是本發(fā)明較佳實施例的在視頻中實現(xiàn)火焰特效的裝置原理框圖4是本發(fā)明較佳實施例的裝置中火焰數(shù)據(jù)生成模塊原理框圖5是本發(fā)明較佳實施例的裝置中調(diào)色板初始化單元原理框圖6是本發(fā)明較佳實施例的裝置中火焰點生成單元原理框圖7是本發(fā)明較佳實施例的裝置中圖像處理模塊原理框圖。
具體實施方式
本發(fā)明較佳實施例的在視頻中實現(xiàn)火焰特效的方法SlOO流程圖如圖1所示,該方法SlOO可以采用軟件、硬件或軟硬件結(jié)合方式來實現(xiàn)。上述方法SlOO起始于步驟S110。在步驟S120中,讀取一幀視頻圖像數(shù)據(jù),根據(jù)視頻圖像的大小初始化需要添加的火焰圖像的大小,設(shè)定火焰圖像參數(shù),包括火焰圖像在視頻圖像中的位置參數(shù)、火焰圖像的高度參數(shù)及寬度參數(shù),并存儲;在步驟S130中,生成與視頻圖像相對應(yīng)的火焰圖像數(shù)據(jù),并存儲在火焰數(shù)據(jù)存儲模塊中;在步驟S140中,根據(jù)火焰圖像在視頻圖像中的位置參數(shù),以及火焰圖像的高度參數(shù)及寬度參數(shù),將火焰數(shù)據(jù)存儲模塊中當(dāng)前存儲的火焰圖像數(shù)據(jù)疊加到視頻圖像中;在步驟S150中,刪除火焰數(shù)據(jù)存儲模塊中當(dāng)前存儲的火焰圖像數(shù)據(jù);在步驟S160中, 判斷是否已讀取完全部需要添加火焰特效的視頻圖像,如果是,則結(jié)束操作,否則重復(fù)執(zhí)行步驟S120,讀取下一幀視頻圖像數(shù)據(jù)。上述方法SlOO結(jié)束于步驟S170。
在上述方法SlOO中,存入到火焰數(shù)據(jù)存儲模塊中的火焰圖像數(shù)據(jù)在每一幀視頻圖像完成火焰圖像添加后即被刪除,以便于存儲用于下一幀視頻圖像的火焰圖像數(shù)據(jù),這樣可以重復(fù)使用同一個內(nèi)存塊,避免重復(fù)申請內(nèi)存塊分配及釋放內(nèi)存,節(jié)省資源,可實現(xiàn)在視頻圖像中實時添加特效,且運算效率更高。由于是針對每一幀視頻圖像分別實時添加火焰圖像,因此可以對添加過的視頻圖像進行實時預(yù)覽。
具體地,上述步驟S120中,所讀取的視頻圖像大小為視頻的一幀圖像的大小,比如640*480,那么相應(yīng)地將火焰圖像的大小也初始化為640*480,即設(shè)定火焰圖像水平方向像素點為640個,垂直方向像素點為480個,同時可以根據(jù)所讀取的視頻圖像在所有視頻幀中的位置來確定火焰圖像在視頻圖像中的位置。
優(yōu)選地,如圖2所示,上述步驟S130具體包括步驟S131、初始化火焰顏色調(diào)色板 (pI^lletteBuffer),在該火焰顏色調(diào)色板中,含有預(yù)設(shè)的數(shù)值到火焰顏色值的映射關(guān)系, 比如該預(yù)設(shè)的數(shù)值為自然數(shù)0-254,即映射有255種火焰顏色值,以記錄火焰從火源點處開始到火焰頂部的漸變色;步驟S132、根據(jù)火焰圖像在視頻圖像中的位置參數(shù),得到視頻圖像中的火焰區(qū)域,并在火焰區(qū)域的最下端隨機生成火源點,定義火源點的數(shù)值;步驟S133、 根據(jù)火源點的數(shù)值生成火焰區(qū)域中除火源點以外的其余火焰點的數(shù)值;步驟S134、根據(jù)火源點的數(shù)值以及其余火焰點的數(shù)值,從火焰顏色調(diào)色板中獲取對應(yīng)的火焰顏色值,生成火焰圖像數(shù)據(jù)。其中,火源點為所有火焰點中位于火焰區(qū)域最下端的火焰點。
其中,上述步驟S131具體包括將火焰圖像由火源點處到火焰頂部分為四個漸變顏色范圍;計算每一個漸變顏色范圍的漸變顏色值;根據(jù)漸變顏色值計算每一個漸變顏色范圍內(nèi)的火焰顏色值,得到預(yù)設(shè)的數(shù)值到火焰顏色值的映射關(guān)系。
例如,設(shè)定火焰圖像由火源點處開始,到火焰頂部顏色漸變分為四個漸變顏色范圍0黑色一255(十六進制值Oxff)紅色一65535(十六進制值Oxffff)黃色 —16777215(十六進制值Oxffffff)白色。
可逐個計算每一個漸變顏色范圍的漸變顏色值,設(shè)置步長為255,每一漸變顏色范圍的火焰漸變顏色值計算過程如下,其中,下面R代表紅色,G代表綠色,B代表藍色
R =漸變顏色范圍的結(jié)束值紅色分量-漸變顏色范圍的開始值紅色分量;
G =漸變顏色范圍的結(jié)束值綠色分量-漸變顏色范圍的開始值綠色分量;
B =漸變顏色范圍的結(jié)束值藍色分量-漸變顏色范圍的開始值藍色分量。
例如,第一個漸變顏色范圍為O55-0),則各顏色步長為
rStep = R/255 ;
gStep = G/255 ;
bStep = B/255。
計算每一個漸變顏色范圍內(nèi)的調(diào)色板中火焰顏色值(m_pPalIetteBuffer),起始值由所處的范圍段確定,比如當(dāng)前計算的是第一個漸變顏色范圍,則起始值為0,依次類推為1、2。具體地,可通過下面的程序段來完成火焰顏色值(m_pl^ll etteBuffer)計算過程
for (int i =0; i < nSteps; i++)
{C0L0RREF color = RGB(b + bStep g + gStep*i, r+rSt印氺i); int nlndex = (int) (i 氺 fStep); if (nlndex + 起始值 < 255)m_pPalletteBuffer [nlndex + 起始值]=color;}o
經(jīng)過上述處理,即可得到火焰顏色調(diào)色板中預(yù)設(shè)的數(shù)值到火焰顏色值的映射關(guān)系,假設(shè)預(yù)設(shè)的數(shù)值為自然數(shù)0-254,則計算得到的映射關(guān)系如下表1所示
表1火焰顏色調(diào)色板的映射關(guān)系
預(yù)設(shè)的數(shù)值火焰顏色值25416777215 (白色)2531671168025216646145...(漸變,由白變偏黃,再變黃,再變偏紅,變紅,再變偏里) 、、ζ00 (黑色)
S卩,在步驟S131中,按照從白色到黃色到紅色、最后到黑色的顏色值,分成了 3段 (0,1,2),并分成2M份等分,計算好各等分的火焰顏色值;在步驟S132中,設(shè)置火焰圖像的底部隨機產(chǎn)生的火源點的數(shù)值254 ;在步驟S133中,以火源點的數(shù)值2M開始,逐行往上計算剩余火焰圖像各像素點的顏色值,即其余火焰點的數(shù)值;具體包括,根據(jù)火焰圖像在視頻圖像中的位置參數(shù)、火焰圖像的高度參數(shù)及寬度參數(shù),從火源點開始,逐行往上遍歷火焰圖像中的各個像素點,取各個像素點的八鄰域均值,得到每一火焰點的數(shù)值;在步驟S134中, 根據(jù)所得到的每一個火焰點的數(shù)值,通過上述表1查找到相對應(yīng)的火焰顏色值,然后集合所有的火焰顏色值,生成火焰圖像數(shù)據(jù)。
需要說明的是,上述實施例中,火源點的數(shù)值并不限于254,該數(shù)值可以從200到 500之間;也不限于對0-2M進行等分,大致進行劃分即可,所得到的效果相差不大。
進一步地,上述方法SlOO中的步驟S140具體包括讀取火焰圖像在視頻圖像中的位置參數(shù)、火焰圖像的高度參數(shù)及寬度參數(shù);讀取火焰數(shù)據(jù)存儲模塊中當(dāng)前存儲的火焰圖像數(shù)據(jù);利用圖像疊加原理,將火焰圖像數(shù)據(jù)疊加到視頻圖像中。構(gòu)成火焰圖像數(shù)據(jù)存儲模塊的內(nèi)存塊具有與視頻幀相同的分辨率,以便于存儲火焰圖像數(shù)據(jù),進行火焰特效的實時更新。其中,上述圖像疊加的具體算法可參考現(xiàn)有技術(shù),在此不一一贅述。
本發(fā)明的另一實施例中,如圖3所示,還提供了一種在視頻中實現(xiàn)火焰特效的裝置00,包括參數(shù)設(shè)置模塊10,用于讀取一幀視頻圖像數(shù)據(jù),根據(jù)視頻圖像的大小初始化需要添加的火焰圖像的大小,設(shè)定火焰圖像在視頻圖像中的位置參數(shù)、火焰圖像的高度參數(shù)及寬度參數(shù),并存儲;火焰數(shù)據(jù)生成模塊20,用于生成與視頻圖像相對應(yīng)的火焰圖像數(shù)據(jù), 并存儲在火焰數(shù)據(jù)存儲模塊中;火焰數(shù)據(jù)存儲模塊30,用于存儲火焰圖像數(shù)據(jù);圖像處理模塊40,用于根據(jù)火焰圖像在視頻圖像中的位置參數(shù)、火焰圖像的高度參數(shù)及寬度參數(shù),將火焰數(shù)據(jù)存儲模塊中當(dāng)前存儲的火焰圖像數(shù)據(jù)疊加到視頻圖像中;存儲管理模塊50,用于刪除火焰數(shù)據(jù)存儲模塊中當(dāng)前存儲的火焰圖像數(shù)據(jù);判斷模塊60,用于判斷是否已讀取完全部需要添加火焰特效的視頻圖像,如果是,則結(jié)束操作,否則觸發(fā)參數(shù)設(shè)置模塊,讀取下一幀視頻圖像數(shù)據(jù)。
在上述裝置00中,存入到火焰數(shù)據(jù)存儲模塊30中的火焰圖像數(shù)據(jù)在每一幀視頻圖像完成火焰圖像添加后即被刪除,以便于存儲用于下一幀視頻圖像的火焰圖像數(shù)據(jù),這樣可以重復(fù)使用火焰數(shù)據(jù)存儲模塊30中同一個內(nèi)存塊,避免重復(fù)申請內(nèi)存塊分配及釋放內(nèi)存,節(jié)省資源,可實現(xiàn)在視頻圖像中實時添加特效,且運算效率更高。由于本裝置00中是針對每一幀視頻圖像分別實時添加火焰圖像,因此可以對添加過的視頻圖像進行實時預(yù)覽。
具體地,上述裝置00的參數(shù)設(shè)置模塊10中,所讀取的視頻圖像大小為視頻的一幀圖像的大小,比如640*480,那么相應(yīng)地將火焰圖像的大小也初始化為640*480,即設(shè)定火焰圖像水平方向像素點為640個,垂直方向像素點為480個,同時可以根據(jù)所讀取的視頻圖像在所有視頻幀中的位置來確定火焰圖像在視頻圖像中的位置。
進一步地,如圖4所示,上述實施例的裝置00中火焰數(shù)據(jù)生成模塊20包括調(diào)色板初始化單元21,用于初始化火焰顏色調(diào)色板,該火焰顏色調(diào)色板中含有預(yù)設(shè)的數(shù)值到火焰顏色值的映射關(guān)系;火源點生成單元22,用于根據(jù)火焰圖像在視頻圖像中的位置參數(shù), 得到視頻圖像中的火焰區(qū)域,并在火焰區(qū)域的最下端隨機生成火源點,定義火源點的數(shù)值; 火焰點生成單元23,用于根據(jù)火源點的數(shù)值生成火焰區(qū)域中除火源點以外的其余火焰點的數(shù)值;火焰圖像數(shù)據(jù)產(chǎn)生單元M,用于根據(jù)火源點的數(shù)值以及其余火焰點的數(shù)值,從火焰顏色調(diào)色板中獲取對應(yīng)的火焰顏色值,生成火焰圖像數(shù)據(jù)。比如,上述預(yù)設(shè)的數(shù)值為自然數(shù) 0-254,即映射有255種火焰顏色值,以記錄火焰從火源點處開始到火焰頂部的漸變色。其中,火源點為所有火焰點中位于火焰區(qū)域最下端的火焰點。
具體地,如圖5所示,上述實施例的火焰數(shù)據(jù)生成模塊20中調(diào)色板初始化單元21 包括范圍劃分子單元211,用于將火焰圖像由火源點處到火焰頂部分為四個漸變顏色范圍;漸變顏色值計算子單元212,用于計算每一個漸變顏色范圍的漸變顏色值;映射關(guān)系產(chǎn)生子單元213,用于根據(jù)漸變顏色值計算每一個漸變顏色范圍內(nèi)的火焰顏色值,得到預(yù)設(shè)的數(shù)值到火焰顏色值的映射關(guān)系。具體火焰顏色值的計算過程舉例可參照上述方法SlOO中步驟S131的例子,在此不再贅述。
如圖6所示,上述火焰數(shù)據(jù)生成模塊20中火焰點生成單元23包括像素點讀取子單元231,用于根據(jù)火焰圖像在視頻圖像中的位置參數(shù)、火焰圖像的高度參數(shù)及寬度參數(shù), 從火源點開始,逐行往上遍歷火焰圖像的各個像素點;數(shù)值計算子單元232,用于取各個像素點的八鄰域均值,得到每一火焰點的數(shù)值。其中,具體的計算過程可參照已有的八鄰域均值計算方法進行,在此不一一詳述。
進一步地,如圖7所示,上述裝置00中圖像處理模塊40包括參數(shù)讀取單元41, 用于讀取火焰圖像在視頻圖像中的位置參數(shù)、火焰圖像的高度參數(shù)及寬度參數(shù);火焰圖像數(shù)據(jù)讀取單元42,用于讀取火焰數(shù)據(jù)存儲模塊中當(dāng)前存儲的火焰圖像數(shù)據(jù);圖像疊加單元 43,用于利用圖像疊加原理,將火焰圖像數(shù)據(jù)疊加到視頻圖像中。其中,構(gòu)成火焰圖像數(shù)據(jù)存儲模塊30的內(nèi)存塊具有與需要添加火焰特效的視頻幀相同的分辨率,以便于存儲火焰圖像數(shù)據(jù),進行火焰特效的實時更新。其中,上述圖像疊加的具體算法可參考現(xiàn)有技術(shù),在此不一一贅述。
上述裝置00中,判斷模塊60中具體的判斷邏輯可以根據(jù)需要設(shè)定,例如可以對每一幀需要添加火焰特效的視頻圖像進行標(biāo)記,通過對該標(biāo)記的識別來判斷是否已讀取完全部需要添加火焰特效的視頻圖像,具體方法在此不詳細描述。
需要理解的是,上述各實施例中,火焰圖像參數(shù)并不限于火焰圖像在視頻圖像中的位置參數(shù)、火焰圖像的高度參數(shù)及寬度參數(shù),還可以包括火焰透明度信息等參數(shù),具體的參數(shù)種類在此不一一列舉。
綜上,本發(fā)明的在視頻中實現(xiàn)火焰特效的方法和裝置中,由于存入到火焰數(shù)據(jù)存儲模塊中的火焰圖像數(shù)據(jù)在每一幀視頻圖像完成火焰圖像添加后即被刪除,以便于存儲用于下一幀視頻圖像的火焰圖像數(shù)據(jù),這樣可以重復(fù)使用同一個內(nèi)存塊,避免重復(fù)申請內(nèi)存塊分配及釋放內(nèi)存,節(jié)省資源,可實現(xiàn)在視頻圖像中實時添加特效,且運算效率更高。由于是針對每一幀視頻圖像分別實時添加火焰圖像,因此可以對添加過的視頻圖像進行實時預(yù)覽。
應(yīng)當(dāng)理解的是,對本領(lǐng)域普通技術(shù)人員來說,可以根據(jù)上述說明加以改進或變換, 而所有這些改進和變換都應(yīng)屬于本發(fā)明所附權(quán)利要求的保護范圍。
權(quán)利要求
1.一種在視頻中實現(xiàn)火焰特效的方法,其特征在于,所述方法包括步驟A、讀取一幀視頻圖像數(shù)據(jù),根據(jù)所述視頻圖像的大小初始化需要添加的火焰圖像的大小,設(shè)定所述火焰圖像在所述視頻圖像中的位置參數(shù)、所述火焰圖像的高度參數(shù)及寬度參數(shù),并存儲;B、生成與所述視頻圖像相對應(yīng)的火焰圖像數(shù)據(jù),并存儲在火焰數(shù)據(jù)存儲模塊中;C、根據(jù)所述火焰圖像在所述視頻圖像中的位置參數(shù)、所述火焰圖像的高度參數(shù)及寬度參數(shù),將所述火焰數(shù)據(jù)存儲模塊中當(dāng)前存儲的火焰圖像數(shù)據(jù)疊加到所述視頻圖像中;D、刪除所述火焰數(shù)據(jù)存儲模塊中當(dāng)前存儲的火焰圖像數(shù)據(jù);E、判斷是否已讀取完全部需要添加火焰特效的視頻圖像,如果是,則結(jié)束操作,否則重復(fù)執(zhí)行步驟A,讀取下一幀視頻圖像數(shù)據(jù)。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述步驟B包括Bi、初始化火焰顏色調(diào)色板,所述火焰顏色調(diào)色板中含有預(yù)設(shè)的數(shù)值到火焰顏色值的映射關(guān)系;B2、根據(jù)所述火焰圖像在所述視頻圖像中的位置參數(shù),得到所述視頻圖像中的火焰區(qū)域,并在所述火焰區(qū)域的最下端隨機生成火源點,定義所述火源點的數(shù)值;B3、根據(jù)所述火源點的數(shù)值生成所述火焰區(qū)域中除火源點以外的其余火焰點的數(shù)值; B4、根據(jù)所述火源點的數(shù)值以及其余火焰點的數(shù)值,從所述火焰顏色調(diào)色板中獲取對應(yīng)的火焰顏色值,生成所述火焰圖像數(shù)據(jù)。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述步驟Bl包括 將所述火焰圖像由所述火源點處到火焰頂部分為四個漸變顏色范圍; 計算每一個所述漸變顏色范圍的漸變顏色值;根據(jù)所述漸變顏色值計算每一個所述漸變顏色范圍內(nèi)的火焰顏色值,得到所述預(yù)設(shè)的數(shù)值到所述火焰顏色值的映射關(guān)系。
4.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述步驟B3包括根據(jù)火焰圖像在所述視頻圖像中的位置參數(shù)、所述火焰圖像的高度參數(shù)及寬度參數(shù), 從所述火源點開始,逐行往上遍歷所述火焰圖像的各個像素點; 取各個像素點的八鄰域均值,得到每一火焰點的數(shù)值。
5.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述步驟C包括讀取所述火焰圖像在所述視頻圖像中的位置參數(shù)、所述火焰圖像的高度參數(shù)及寬度參數(shù);讀取所述火焰數(shù)據(jù)存儲模塊中當(dāng)前存儲的火焰圖像數(shù)據(jù); 利用圖像疊加原理,將所述火焰圖像數(shù)據(jù)疊加到所述視頻圖像中。
6.一種在視頻中實現(xiàn)火焰特效的裝置,其特征在于,包括參數(shù)設(shè)置模塊,用于讀取一幀視頻圖像數(shù)據(jù),根據(jù)所述視頻圖像的大小初始化需要添加的火焰圖像的大小,設(shè)定所述火焰圖像在所述視頻圖像中的位置參數(shù)、所述火焰圖像的高度參數(shù)及寬度參數(shù),并存儲;火焰數(shù)據(jù)生成模塊,用于生成與所述視頻圖像相對應(yīng)的火焰圖像數(shù)據(jù),并存儲在火焰數(shù)據(jù)存儲模塊中;火焰數(shù)據(jù)存儲模塊,用于存儲所述火焰圖像數(shù)據(jù);圖像處理模塊,用于根據(jù)所述火焰圖像在所述視頻圖像中的位置參數(shù)、所述火焰圖像的高度參數(shù)及寬度參數(shù),將所述火焰數(shù)據(jù)存儲模塊中當(dāng)前存儲的火焰圖像數(shù)據(jù)疊加到所述視頻圖像中;存儲管理模塊,用于刪除所述火焰數(shù)據(jù)存儲模塊中當(dāng)前存儲的火焰圖像數(shù)據(jù);判斷模塊,用于判斷是否已讀取完全部需要添加火焰特效的視頻圖像,如果是,則結(jié)束操作,否則觸發(fā)所述參數(shù)設(shè)置模塊,讀取下一幀視頻圖像數(shù)據(jù)。
7.根據(jù)權(quán)利要求6所述的裝置,其特征在于,所述火焰數(shù)據(jù)生成模塊包括調(diào)色板初始化單元,用于初始化火焰顏色調(diào)色板,所述火焰顏色調(diào)色板中含有預(yù)設(shè)的數(shù)值到火焰顏色值的映射關(guān)系;火源點生成單元,用于根據(jù)所述火焰圖像在所述視頻圖像中的位置參數(shù),得到所述視頻圖像中的火焰區(qū)域,并在所述火焰區(qū)域的最下端隨機生成火源點,定義所述火源點的數(shù)值;火焰點生成單元,用于根據(jù)所述火源點的數(shù)值生成所述火焰區(qū)域中除火源點以外的其余火焰點的數(shù)值;火焰圖像數(shù)據(jù)產(chǎn)生單元,用于根據(jù)所述火源點的數(shù)值以及其余火焰點的數(shù)值,從所述火焰顏色調(diào)色板中獲取對應(yīng)的火焰顏色值,生成所述火焰圖像數(shù)據(jù)。
8.根據(jù)權(quán)利要求7所述的裝置,其特征在于,所述調(diào)色板初始化單元包括范圍劃分子單元,用于將所述火焰圖像由所述火源點處到火焰頂部分為四個漸變顏色范圍;漸變顏色值計算子單元,用于計算每一個所述漸變顏色范圍的漸變顏色值;映射關(guān)系產(chǎn)生子單元,用于根據(jù)所述漸變顏色值計算每一個所述漸變顏色范圍內(nèi)的火焰顏色值,得到所述預(yù)設(shè)的數(shù)值到所述火焰顏色值的映射關(guān)系。
9.根據(jù)權(quán)利要求7所述的裝置,其特征在于,所述火焰點生成單元包括像素點讀取子單元,用于根據(jù)火焰圖像在所述視頻圖像中的位置參數(shù)、所述火焰圖像的高度參數(shù)及寬度參數(shù),從所述火源點開始,逐行往上遍歷所述火焰圖像的各個像素點;數(shù)值計算子單元,用于取各個像素點的八鄰域均值,得到每一火焰點的數(shù)值。
10.根據(jù)權(quán)利要求6所述的裝置,其特征在于,所述圖像處理模塊包括參數(shù)讀取單元,用于讀取所述火焰圖像在所述視頻圖像中的位置參數(shù)、所述火焰圖像的高度參數(shù)及寬度參數(shù);火焰圖像數(shù)據(jù)讀取單元,用于讀取所述火焰數(shù)據(jù)存儲模塊中當(dāng)前存儲的火焰圖像數(shù)據(jù);圖像疊加單元,用于利用圖像疊加原理,將所述火焰圖像數(shù)據(jù)疊加到所述視頻圖像中。
全文摘要
本發(fā)明涉及一種在視頻中實現(xiàn)火焰特效的方法和裝置,其中方法包括步驟A、讀取一幀視頻圖像數(shù)據(jù),根據(jù)視頻圖像的大小初始化需要添加的火焰圖像的大小,設(shè)定火焰圖像在視頻圖像中的位置參數(shù)、高度參數(shù)及寬度參數(shù),并存儲;B、生成與視頻圖像相對應(yīng)的火焰圖像數(shù)據(jù),并存儲在火焰數(shù)據(jù)存儲模塊中;C、將火焰數(shù)據(jù)存儲模塊中當(dāng)前存儲的火焰圖像數(shù)據(jù)疊加到視頻圖像中;D、刪除火焰數(shù)據(jù)存儲模塊中當(dāng)前存儲的火焰圖像數(shù)據(jù),判斷是否已讀取完全部需要添加火焰特效的視頻圖像,如果是,則結(jié)束操作,否則重復(fù)執(zhí)行步驟A,讀取下一幀視頻圖像數(shù)據(jù)。通過本發(fā)明的方法和裝置可實現(xiàn)在視頻圖像中實時添加特效、實時預(yù)覽,且運算效率更高。
文檔編號H04N5/262GK102523387SQ20111040936
公開日2012年6月27日 申請日期2011年12月9日 優(yōu)先權(quán)日2011年12月9日
發(fā)明者王小艷 申請人:深圳市萬興軟件有限公司