專利名稱:一種應(yīng)用多線程創(chuàng)建三維云圖的方法和裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及動畫制作技術(shù)領(lǐng)域,特別是涉及一種應(yīng)用多線程創(chuàng)建三維云圖的方法和裝置。
背景技術(shù):
在天氣預(yù)報系統(tǒng)中常常需要用到三維云圖,三維云圖的數(shù)據(jù)處理量比較大,現(xiàn)在常用的三維云圖數(shù)據(jù)大小為512*512像素,要顯示較好的三維云圖的效果,建立的云圖模型大小至少為像素。目前通過單線程建立三角網(wǎng)格模型的方法來處理讀取的三維云圖的數(shù)據(jù),采用單線程建立三角網(wǎng)格模型需要耗費的時間較長,經(jīng)測試建立三角網(wǎng)格模型需要耗費的時間> 40ms。在天氣預(yù)報系統(tǒng)中播放三維云圖的時候,為了使得播放流暢、圖像清晰,要求每秒鐘播放25幀經(jīng)過處理的三維云圖,這樣就要求建立三角網(wǎng)格模型的時間要< 40ms,否則就無法達到播放三維云圖時的要求。
發(fā)明內(nèi)容
本發(fā)明所要解決的技術(shù)問題是提供一種創(chuàng)建三維云圖的方法,能夠縮短創(chuàng)建三角網(wǎng)格模型的時間,進而縮短創(chuàng)建三維云圖的時間。為了解決上述問題,本發(fā)明公開了一種創(chuàng)建三維云圖的方法,包括將獲取的云圖數(shù)據(jù)劃分為預(yù)設(shè)份數(shù);將劃分的各份數(shù)的云圖數(shù)據(jù)交給對應(yīng)的線程處理,所述線程的數(shù)量與預(yù)設(shè)份數(shù)相同;各個線程依據(jù)該線程接收的云圖數(shù)據(jù)建立三角網(wǎng)格模型;將各個線程建立的三角網(wǎng)格模型經(jīng)渲染得到三維云圖模型。進一步的,劃分云圖數(shù)據(jù)是對云圖數(shù)據(jù)按大小相同進行等分。進一步的,劃分云圖數(shù)據(jù)后得到的預(yù)設(shè)份數(shù)的云圖數(shù)據(jù)量的大小差別在預(yù)設(shè)范圍內(nèi),所述預(yù)設(shè)范圍為5^--5 ^進一步的,將獲取的云圖數(shù)據(jù)劃分為預(yù)設(shè)份數(shù)時,相鄰預(yù)設(shè)份數(shù)之間至少有一行
數(shù)據(jù)重合。進一步的,將獲取的云圖數(shù)據(jù)劃分為預(yù)設(shè)份數(shù)即將獲取的云圖數(shù)據(jù)劃分為4份。進一步的,將獲取的云圖數(shù)據(jù)劃分為預(yù)設(shè)份數(shù)之前還包括對云圖數(shù)據(jù)進行預(yù)處理的步驟,所述預(yù)處理的步驟包括調(diào)節(jié)云圖數(shù)據(jù)灰度的對比度。進一步的,調(diào)節(jié)云圖數(shù)據(jù)灰度的對比度包括預(yù)設(shè)第一參數(shù)、第二參數(shù),所述第一參數(shù)小于第二參數(shù),所述第一、二參數(shù)介于 0155之間;如果獲取的云圖數(shù)據(jù)的灰度值小于和/或等于第一參數(shù)時,則云圖數(shù)據(jù)灰度的對比度為0 ;如果獲取的云圖數(shù)據(jù)的灰度值介于第一參數(shù)和第二參數(shù)之間,則云圖數(shù)據(jù)灰度的對比度為云圖數(shù)據(jù)灰度值同第一參數(shù)的差值*255/第二參數(shù)同第一參數(shù)的差值;如果獲取的云圖數(shù)據(jù)的灰度值大于和/或等于第二參數(shù)時,則云圖數(shù)據(jù)灰度的對比度為255。進一步的,預(yù)處理的步驟還包括按照預(yù)設(shè)高度和亮度對云圖數(shù)據(jù)進行調(diào)節(jié)。進一步的,各線程之間通過CMutex實現(xiàn)線程同步。本發(fā)明實施例還提供了一種創(chuàng)建三維云圖的裝置,包括劃分單元,用于將獲取的云圖數(shù)據(jù)劃分為預(yù)設(shè)份數(shù);提交單元,用于將劃分的各份數(shù)的云圖數(shù)據(jù)交給對應(yīng)的線程處理,所述線程的數(shù)量與預(yù)設(shè)份數(shù)相同;處理單元,用于各個線程依據(jù)該線程接收的云圖數(shù)據(jù)建立三角網(wǎng)格模型;渲染單元,用于將各個線程建立的三角網(wǎng)格模型經(jīng)渲染得到三維云圖模型。與現(xiàn)有技術(shù)相比,本發(fā)明具有以下優(yōu)點本發(fā)明將云圖數(shù)據(jù)劃分為預(yù)設(shè)的份數(shù),提交給對應(yīng)的線程處理,每個線程處理一份云圖數(shù)據(jù),之后將各個線程處理的云圖數(shù)據(jù)渲染得到三維云圖模型。相對于現(xiàn)有技術(shù)采用單線程處理云圖數(shù)據(jù)的方法來說,本發(fā)明的方法采用多線程對數(shù)據(jù)進行處理縮短了云圖數(shù)據(jù)處理的時間,進而縮短了得到三維云圖的時間。進一步,本發(fā)明采用的方法還對獲取的云圖數(shù)據(jù)進行預(yù)處理,根據(jù)云圖數(shù)據(jù)灰度值,對改灰度值進行調(diào)節(jié),解決了原始的云圖數(shù)據(jù)大都偏亮或偏暗的問題。
圖1是本發(fā)明一種創(chuàng)建三維云圖的方法實施例一的流程圖;圖2是本發(fā)明一種創(chuàng)建三維云圖的方法實施例二中調(diào)節(jié)云圖數(shù)據(jù)灰度的對比度的流程圖;圖3是本發(fā)明一種創(chuàng)建三維云圖的方法實施例二中調(diào)節(jié)云圖數(shù)據(jù)灰度的對比度的示意圖;圖4是云圖數(shù)據(jù)在預(yù)處理前的云圖顯示效果圖;圖5是采用本發(fā)明方法對云圖數(shù)據(jù)進行預(yù)處理之后的云圖顯示效果圖;圖6是本發(fā)明一種創(chuàng)建三維云圖裝置結(jié)構(gòu)示意圖。
具體實施例方式為使本發(fā)明的上述目的、特征和優(yōu)點能夠更加明顯易懂,下面結(jié)合附圖和具體實施方式
對本發(fā)明作進一步詳細的說明。實施例一參照圖1,示出了本發(fā)明一種創(chuàng)建三維云圖的方法流程圖,包括步驟101,將獲取的云圖數(shù)據(jù)劃分為預(yù)設(shè)份數(shù);為了知道如何劃分云圖數(shù)據(jù),需要先介紹一下云圖數(shù)據(jù)的格式,云圖數(shù)據(jù)包括文件頭和數(shù)據(jù)組成。文件頭(文件頭為TEXT格式)diam0nd(8個字符)13(3個字符)數(shù)據(jù)說明(40個字符)年(5個字符)月(3個字符)日(3個字符)時次(3個字符)X方向圖象大小(5個字符)Y方向圖象大小(5個字符)圖象左下角經(jīng)度坐標(8個字符)圖象左下角緯度坐標(8個字符)投影方式O個字符,1-lambert 2-mecator 3-北半球4-南半球) 放縮系數(shù)(5個字符)圖象類型O個字符,1-紅外云圖2-雷達拼圖3-地形圖4-可見光云圖5-水汽圖)象素值與相應(yīng)物理量對照表文件名(12個字符)中心經(jīng)度(8個字符)、 中心緯度(8個字符)。文件頭部分共1 個字符。目前9210工程通訊系統(tǒng)傳輸?shù)腉MS5云圖左下角經(jīng)緯度(86. 4,-1. 3)。數(shù)據(jù)(數(shù)據(jù)格式為二進制數(shù)據(jù))一個象素點占一個字節(jié),先沿X方向后Y方向。下面就是一個云圖數(shù)據(jù)的具體例子diamond 13 97 年 2 月 10 日 08 時紅外云圖 1997 02 10 08 1280 1024 86.4-1.3 11.01 ir.dat cloud。劃分云圖數(shù)據(jù)可以是等分也可以不等分。按照云圖數(shù)據(jù)的大小,可以將云圖數(shù)據(jù)等分為4份,分別交給4個進程處理;也可以是將云圖數(shù)據(jù)劃分為大小大概相等的若干份,將劃分的數(shù)據(jù)分別交給對應(yīng)的線程處理??傊?,不論如何劃分云圖數(shù)據(jù),只要保證劃分的云圖數(shù)據(jù)之間的大小相差不是很大。為了保證劃分的云圖數(shù)據(jù)之間的大小相差不是很大,可以預(yù)設(shè)一個大小差別的閾值,可以設(shè)置劃分的云圖數(shù)據(jù)之間的大小相差的范圍在 5% —5%之間。在劃分云圖數(shù)據(jù)時,為了保證在后期不同線程處理完畢的云圖數(shù)據(jù)相互整合渲染得到的三維云圖數(shù)據(jù)不出現(xiàn)縫隙,使得各個線程處理的數(shù)據(jù)能夠無縫連接,在劃分時需要保證相鄰的云圖數(shù)據(jù)之間至少有一行數(shù)據(jù)重合。例如整個云圖數(shù)據(jù)塊大小為128*128, 將云圖數(shù)據(jù)劃分為4等分,則劃分的四塊數(shù)據(jù)大小分別為應(yīng)該是1觀*32,128*32,128*32, 128*32 ;為了保證劃分后的數(shù)據(jù)塊在整合渲染時能夠無縫連接,則上述大小的數(shù)據(jù)塊劃分為4等分后,各個數(shù)據(jù)塊大小為1觀*32,128*33,128*33,1觀*32,這樣就可以保證相鄰數(shù)據(jù)塊之間有一行重合,進而保證各個數(shù)據(jù)塊整合渲染時能夠無縫連接。步驟102,將劃分的各份數(shù)的云圖數(shù)據(jù)交給對應(yīng)的線程處理,所述線程的數(shù)量與預(yù)設(shè)份數(shù)相同;將云圖數(shù)據(jù)劃分之后,在實現(xiàn)本發(fā)明的時候還需要注意的就是要保證有多個線程,每個線程處理一份數(shù)據(jù),這樣才可以保證本發(fā)明的目的的實現(xiàn)。因為多個線程對數(shù)據(jù)的處理效率當(dāng)然要比單個線程處理數(shù)據(jù)的能力要強。多個線程在處理云圖數(shù)據(jù)時,可以保持同步,這時的處理時間最短,效率最高。當(dāng)然也可以相互有個時間差,但是不能是順序進行或者是一個線程處理完數(shù)據(jù)之后另一個線程再開始處理數(shù)據(jù)。否則就同單線程處理數(shù)據(jù)沒有什么差別了,達不到本發(fā)明的目的了。在本發(fā)明方法實施例中,可以通過CMutex實現(xiàn)各個線程同步。步驟103,各個線程依據(jù)該線程接收的云圖數(shù)據(jù)建立三角網(wǎng)格模型;步驟104,將各個線程建立的三角網(wǎng)格模型經(jīng)渲染得到三維云圖模型。建立三角網(wǎng)格模型的方法和對三角網(wǎng)格模型進行渲染的方法在現(xiàn)有技術(shù)中常有描述,不再贅述。上述本發(fā)明方法實施例一將云圖數(shù)據(jù)劃分為預(yù)設(shè)的份數(shù),提交給對應(yīng)的線程處理,每個線程處理一份云圖數(shù)據(jù),之后將各個線程處理的云圖數(shù)據(jù)渲染得到三維云圖模型。 相對于現(xiàn)有技術(shù)采用單線程處理云圖數(shù)據(jù)的方法來說,本發(fā)明的方法采用多線程對數(shù)據(jù)進行處理縮短了云圖數(shù)據(jù)處理的時間,進而縮短了得到三維云圖的時間。
實施例二本實施例同實施例一的區(qū)別在于,將獲取的云圖數(shù)據(jù)劃分為預(yù)設(shè)份數(shù)之前還包括對云圖數(shù)據(jù)進行預(yù)處理的步驟,預(yù)處理的步驟包括調(diào)節(jié)云圖數(shù)據(jù)灰度的對比度。參見圖2所示,調(diào)節(jié)云圖數(shù)據(jù)灰度的對比度包括步驟201,預(yù)設(shè)第一參數(shù)、第二參數(shù),所述第一參數(shù)小于第二參數(shù),所述第一、二參數(shù)介于0-255之間;0-255是現(xiàn)有技術(shù)中通常的像素的取值范圍,取值為0時,則表示像素最黑,即獲取的云圖數(shù)據(jù)很暗;取值為255時,則表示像素最白,即獲取的云圖數(shù)據(jù)很亮;不論云圖是偏暗或偏亮都會影響云圖的顯示效果,所以需要對偏暗或偏亮的云圖進行調(diào)節(jié)。步驟202,如果獲取的云圖數(shù)據(jù)的灰度值小于和/或等于第一參數(shù)時,則云圖數(shù)據(jù)灰度的對比度為0 ;步驟203,如果獲取的云圖數(shù)據(jù)的灰度值介于第一參數(shù)和第二參數(shù)之間,則云圖數(shù)據(jù)灰度的對比度為云圖數(shù)據(jù)灰度值同第一參數(shù)的差值*255/第二參數(shù)同第一參數(shù)的差值;具體實施時,云圖數(shù)據(jù)灰度值同第一參數(shù)的差值乘以255再除以第二參數(shù)同第一參數(shù)的差值。步驟204,如果獲取的云圖數(shù)據(jù)的灰度值大于和/或等于第二參數(shù)時,則云圖數(shù)據(jù)灰度的對比度為255。上述云圖數(shù)據(jù)的調(diào)節(jié)過程也可以參見圖3所示,X軸表示云圖數(shù)據(jù)輸入時的值,Y 軸表示云圖數(shù)據(jù)經(jīng)過調(diào)解后數(shù)據(jù)的值,Xl為第一參數(shù),x2為第二參數(shù)。在對云圖數(shù)據(jù)進行預(yù)處理的上述步驟中,還可以調(diào)節(jié)云圖數(shù)據(jù)的高度和亮度,可以按照預(yù)設(shè)高度和亮度對云圖數(shù)據(jù)進行調(diào)節(jié)。例如,將獲取的云圖數(shù)據(jù)的灰度值乘上預(yù)設(shè)高度的比例因子即得到該灰度值云圖的高度,相同的方法也可以應(yīng)用在對云圖數(shù)據(jù)的亮度處理中。參見圖4是預(yù)處理前的云圖顯示效果圖,圖5是采用本發(fā)明方法對云圖數(shù)據(jù)進行預(yù)處理之后的云圖顯示效果圖??梢钥吹綀D5的顯示效果相對于圖4更清晰、效果更突出。實施例二的方法對獲取的云圖數(shù)據(jù)進行預(yù)處理,根據(jù)云圖數(shù)據(jù)灰度值,對改灰度值進行調(diào)節(jié),解決了原始的云圖數(shù)據(jù)大都偏亮或偏暗的問題。以上對本發(fā)明所提供的一種創(chuàng)建三維云圖的方法,進行了詳細介紹,本文中應(yīng)用了具體個例對本發(fā)明的原理及實施方式進行了闡述,以上實施例的說明只是用于幫助理解本發(fā)明的方法及其核心思想;同時,對于本領(lǐng)域的一般技術(shù)人員,依據(jù)本發(fā)明的思想,在具體實施方式
及應(yīng)用范圍上均會有改變之處,綜上所述,本說明書內(nèi)容不應(yīng)理解為對本發(fā)明的限制。實施例三本發(fā)明還提供了一種創(chuàng)建三維云圖的裝置實施例,該裝置實施例包括劃分單元601,用于將獲取的云圖數(shù)據(jù)劃分為預(yù)設(shè)份數(shù);提交單元602,用于將劃分的各份數(shù)的云圖數(shù)據(jù)交給對應(yīng)的線程處理,所述線程的數(shù)量與預(yù)設(shè)份數(shù)相同;處理單元603,用于各個線程依據(jù)該線程接收的云圖數(shù)據(jù)建立三角網(wǎng)格模型;
渲染單元604,用于將各個線程建立的三角網(wǎng)格模型經(jīng)渲染得到三維云圖模型。本裝置在處理云圖數(shù)據(jù)時,云圖數(shù)據(jù)先進入到劃分單元601,劃分單元601將獲取的云圖數(shù)據(jù)劃分為預(yù)設(shè)份數(shù);之后提交單元602將劃分的各份數(shù)的云圖數(shù)據(jù)交給對應(yīng)的線程處理,所述線程的數(shù)量與預(yù)設(shè)份數(shù)相同;各個線程都設(shè)有一個或多個處理單元603,該處理單元依據(jù)該線程接收的云圖數(shù)據(jù)建立三角網(wǎng)格模型;各線程將數(shù)據(jù)處理完畢之后發(fā)送到渲染單元604,渲染單元604將各個線程建立的三角網(wǎng)格模型經(jīng)渲染得到三維云圖模型。本說明書中的各個實施例均采用遞進的方式描述,每個實施例重點說明的都是與其他實施例的不同之處,各個實施例之間相同相似的部分互相參見即可。
權(quán)利要求
1.一種創(chuàng)建三維云圖的方法,其特征在于,包括 將獲取的云圖數(shù)據(jù)劃分為預(yù)設(shè)份數(shù);將劃分的各份數(shù)的云圖數(shù)據(jù)交給對應(yīng)的線程處理,所述線程的數(shù)量與預(yù)設(shè)份數(shù)相同; 各個線程依據(jù)該線程接收的云圖數(shù)據(jù)建立三角網(wǎng)格模型; 將各個線程建立的三角網(wǎng)格模型經(jīng)渲染得到三維云圖模型。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述劃分云圖數(shù)據(jù)是對云圖數(shù)據(jù)按大小相同進行等分。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述劃分云圖數(shù)據(jù)后得到的預(yù)設(shè)份數(shù)的云圖數(shù)據(jù)量的大小差別在預(yù)設(shè)范圍內(nèi),所述預(yù)設(shè)范圍為5% —5%。
4.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述將獲取的云圖數(shù)據(jù)劃分為預(yù)設(shè)份數(shù)時,相鄰預(yù)設(shè)份數(shù)之間至少有一行數(shù)據(jù)重合。
5.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述將獲取的云圖數(shù)據(jù)劃分為預(yù)設(shè)份數(shù)即將獲取的云圖數(shù)據(jù)劃分為4份。
6.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述將獲取的云圖數(shù)據(jù)劃分為預(yù)設(shè)份數(shù)之前還包括對云圖數(shù)據(jù)進行預(yù)處理的步驟,所述預(yù)處理的步驟包括調(diào)節(jié)云圖數(shù)據(jù)灰度的對比度。
7.根據(jù)權(quán)利要求6所述的方法,其特征在于,所述調(diào)節(jié)云圖數(shù)據(jù)灰度的對比度包括 預(yù)設(shè)第一參數(shù)、第二參數(shù),所述第一參數(shù)小于第二參數(shù),所述第一、二參數(shù)介于0-255之間;如果獲取的云圖數(shù)據(jù)的灰度值小于和/或等于第一參數(shù)時,則云圖數(shù)據(jù)灰度的對比度為0;如果獲取的云圖數(shù)據(jù)的灰度值介于第一參數(shù)和第二參數(shù)之間,則云圖數(shù)據(jù)灰度的對比度為云圖數(shù)據(jù)灰度值同第一參數(shù)的差值*255/第二參數(shù)同第一參數(shù)的差值;如果獲取的云圖數(shù)據(jù)的灰度值大于和/或等于第二參數(shù)時,則云圖數(shù)據(jù)灰度的對比度為 255。
8.根據(jù)權(quán)利要求6所述的方法,其特征在于,所述預(yù)處理的步驟還包括按照預(yù)設(shè)高度和亮度對云圖數(shù)據(jù)進行調(diào)節(jié)。
9.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述各線程之間通過CMutex實現(xiàn)線程同步。
10.一種創(chuàng)建三維云圖的裝置,其特征在于,包括 劃分單元,用于將獲取的云圖數(shù)據(jù)劃分為預(yù)設(shè)份數(shù);提交單元,用于將劃分的各份數(shù)的云圖數(shù)據(jù)交給對應(yīng)的線程處理,所述線程的數(shù)量與預(yù)設(shè)份數(shù)相同;處理單元,用于各個線程依據(jù)該線程接收的云圖數(shù)據(jù)建立三角網(wǎng)格模型; 渲染單元,用于將各個線程建立的三角網(wǎng)格模型經(jīng)渲染得到三維云圖模型。
全文摘要
本發(fā)明提供了一種應(yīng)用多線程創(chuàng)建三維云圖的方法,包括將獲取的云圖數(shù)據(jù)劃分為預(yù)設(shè)份數(shù);將劃分的各份數(shù)的云圖數(shù)據(jù)交給對應(yīng)的線程處理,所述線程的數(shù)量與預(yù)設(shè)份數(shù)相同;各個線程依據(jù)該線程接收的云圖數(shù)據(jù)建立三角網(wǎng)格模型;將各個線程建立的三角網(wǎng)格模型經(jīng)渲染得到三維云圖模型。對于現(xiàn)有技術(shù),本發(fā)明的方法采用多線程對數(shù)據(jù)進行處理縮短了云圖數(shù)據(jù)處理的時間,進而縮短了得到三維云圖的時間。
文檔編號G06T17/00GK102169598SQ201010116480
公開日2011年8月31日 申請日期2010年2月26日 優(yōu)先權(quán)日2010年2月26日
發(fā)明者胡守剛 申請人:新奧特(北京)視頻技術(shù)有限公司