歡迎光臨南京遠(yuǎn)洋運(yùn)輸股份有限公司官網(wǎng)!
搜索 企業(yè)郵箱 公司OA 請(qǐng)選擇語(yǔ)言版本: En
求新 務(wù)實(shí) 立信 望遠(yuǎn)
知識(shí)庫(kù)
當(dāng)前位置:首頁(yè) > 學(xué)習(xí)園地 > 知識(shí)庫(kù) > 經(jīng)驗(yàn)交流 > 瀏覽文章

經(jīng)驗(yàn)交流

基于GDI+的電子海圖與雷達(dá)圖像的疊加顯示
時(shí)間:2009年09月30日   作者:佚名  點(diǎn)擊次數(shù): 【字體:

內(nèi)容提要:論文實(shí)現(xiàn)了一種基于Visual C++GDI+技術(shù)的電子海圖與雷達(dá)圖像實(shí)時(shí)疊加的軟件設(shè)計(jì)。闡述了電子海圖和雷達(dá)圖像單獨(dú)顯示時(shí)的關(guān)鍵技術(shù)及操作流程,針對(duì)兩者的疊加顯示問(wèn)題,提出了解決方案。該設(shè)計(jì)滿足了實(shí)時(shí)性的要求,做到雷達(dá)靜態(tài)目標(biāo)與海圖中的相應(yīng)目標(biāo)相互吻合,雷達(dá)動(dòng)態(tài)目標(biāo)在海圖上實(shí)時(shí)、準(zhǔn)確地定位顯示。

關(guān)鍵詞:電子海圖 雷達(dá)圖像 疊加顯示 GDI+

0 引言

電子海圖顯示與信息系統(tǒng)(Electronic Chart Display Information System——ECDIS)集導(dǎo)航技術(shù)、計(jì)算機(jī)技術(shù)、計(jì)算機(jī)圖形顯示技術(shù)及軟件技術(shù)于一體,在海圖信息的基礎(chǔ)上完成各種有關(guān)船舶航行安全的綜合顯示,已成為現(xiàn)代船舶導(dǎo)航系統(tǒng)的核心設(shè)備。而用于航行和避碰的雷達(dá)又是狹水道、沿岸及霧中等復(fù)雜條件下航行所不可缺少的設(shè)備。若單獨(dú)使用電子海圖或雷達(dá),雖然在一定程度上滿足了船舶安全航行的需求,但它們都存在各自的缺陷(電子海圖無(wú)法顯示動(dòng)態(tài)目標(biāo),雷達(dá)則不能識(shí)別周圍目標(biāo)的屬性)。如果將電子海圖與雷達(dá)圖像疊加顯示,則可實(shí)現(xiàn)兩者的優(yōu)勢(shì)互補(bǔ),并彌補(bǔ)了它們單獨(dú)使用時(shí)存在的缺陷。

近年來(lái),隨著信息技術(shù)和導(dǎo)航技術(shù)的不斷發(fā)展,海圖和雷達(dá)信息數(shù)字化之后,兩者間實(shí)現(xiàn)了數(shù)據(jù)傳輸,使電子海圖與雷達(dá)圖像數(shù)據(jù)信息的疊加顯示成為可能,任何一方的“圖像”可以被疊加到另一方的圖像上。在電子海圖上疊加顯示雷達(dá)圖像數(shù)據(jù)信息,可在原航行水域海圖信息的基礎(chǔ)上提供本船、本船周圍的靜態(tài)目標(biāo)與動(dòng)態(tài)目標(biāo)三者之間的位置關(guān)系。使本船對(duì)周圍的態(tài)勢(shì)和會(huì)遇到的局面一目了然,便于盡快作出判斷,避開(kāi)航行危險(xiǎn)和障礙物,及時(shí)采取避碰措施,并在電子海圖上跟蹤避碰決策的可行性。

1 總體實(shí)現(xiàn)思路

本設(shè)計(jì)主要在Visual C++6.0環(huán)境下采用GDI+技術(shù),實(shí)現(xiàn)以電子海圖為顯示底層,以雷達(dá)圖像為動(dòng)態(tài)層的雷達(dá)視頻信息的實(shí)時(shí)疊加顯示。

電子海圖的顯示主要按照讀取海圖數(shù)據(jù)、轉(zhuǎn)換海圖數(shù)據(jù)及顯示海圖的順序完成。為了保證S52標(biāo)準(zhǔn)要求的顯示速度及內(nèi)容,顯示海圖時(shí)采用雙緩存機(jī)制、內(nèi)存拷貝方式和GDI+技術(shù),來(lái)提高海圖顯示的速度,使海圖在漫游時(shí)能快速、平滑地移動(dòng);而繪制雷達(dá)圖像則運(yùn)用快速坐標(biāo)變換滿足實(shí)時(shí)性的要求。電子海圖與雷達(dá)圖象的疊加必須準(zhǔn)確定位雷達(dá)中心在海圖上的位置,并且隨著海圖顯示比例尺和雷達(dá)量程的變化,兩者都將作出相應(yīng)的變化。

2 電子海圖的顯示

2.1 S57標(biāo)準(zhǔn)的數(shù)據(jù)結(jié)構(gòu)

符合S57標(biāo)準(zhǔn)的電子海圖文件中的數(shù)據(jù)結(jié)構(gòu)由一些記錄和字段組成,而這些記錄和字段都由現(xiàn)實(shí)模型轉(zhuǎn)換而來(lái),它們主要包括:特征記錄、空間記錄、矢量記錄、地理特征記錄、指針字段等。在S57文件中,DDR包含了S57數(shù)據(jù)結(jié)構(gòu)中各個(gè)字段的描述:DR則包含了實(shí)際的海圖數(shù)據(jù),主要由特征記錄和矢量記錄組成。

2.2 海圖顯示的方法

由于S57海圖數(shù)據(jù)文件將ISO/IEC8211:1994作為其數(shù)據(jù)封裝的標(biāo)準(zhǔn),而這個(gè)標(biāo)準(zhǔn)并不適合顯示時(shí)使用,所以需要定義自己的數(shù)據(jù)結(jié)構(gòu),以滿足IMO S52標(biāo)準(zhǔn)要求的顯示速度及內(nèi)容。海圖的顯示主要由三部分來(lái)完成,流程圖如圖1

基于GDI+的電子海圖與雷達(dá)圖像的疊加顯示

1)讀取海圖數(shù)據(jù):讀取按照ISO/IEC8211:1994標(biāo)準(zhǔn)封裝的海圖數(shù)據(jù)文件,并保存為S57數(shù)據(jù)結(jié)構(gòu)。此處主要有數(shù)據(jù)集DSPM字段、向量記錄VRID、特征信息記錄FRID以及海圖信息記錄MAPINFO等。通過(guò)自定義多個(gè)結(jié)構(gòu)體,先存儲(chǔ)讀取的基本海圖信息,如海圖比例尺、海圖左上角及有下角經(jīng)緯度和海圖中心等,然后將海圖數(shù)據(jù)進(jìn)行分類、排序并分別讀人到對(duì)應(yīng)的點(diǎn)、線、面鏈表中,以供下一步使用。

2)轉(zhuǎn)換海圖數(shù)據(jù):將前一部分輸出的鏈表記錄轉(zhuǎn)換成可顯示的數(shù)據(jù)格式。分別對(duì)點(diǎn)、線、面進(jìn)行操作,將點(diǎn)劃分成孤立點(diǎn)和水深點(diǎn),建立鏈表保存點(diǎn)信息及其對(duì)應(yīng)的索引值;對(duì)于線和面則首先讀取顯示屬性數(shù)據(jù)文件,保存它們的屬性值到定義的鏈表中,然后根據(jù)其特征信息FRID來(lái)讀取空間信息VRID。此外,還要確定面物標(biāo)的邊界及顏色值,水深線作為線物標(biāo)的一部分單獨(dú)存儲(chǔ)并設(shè)置水深線間對(duì)應(yīng)面物標(biāo)的顏色值,最后將海圖信息按照顯示級(jí)別進(jìn)行排序。以上保存的鏈表數(shù)據(jù)作為本部分的輸出供顯示時(shí)使用。

3)顯示海圖:將第二部分得到的鏈表數(shù)據(jù)繪制到屏幕上完成海圖的顯示。由于海圖數(shù)據(jù)中的坐標(biāo)是實(shí)際地理坐標(biāo),不能直接在屏幕上顯示,所以在顯示海圖之前,必須進(jìn)行坐標(biāo)變換。該變換主要有三步:

實(shí)際地理坐標(biāo)®墨卡托投影坐標(biāo)®屏幕坐標(biāo)。

另外,還設(shè)置了屏幕顯示區(qū)域,根據(jù)Sutherland_Hodgeman原理將多邊形裁剪成匹配屏幕顯示區(qū)域的大小,這樣,隨著顯示比例尺的變化,可動(dòng)態(tài)的顯示用戶所需要的那部分海圖。

為了保證S52標(biāo)準(zhǔn)要求的顯示速度及內(nèi)容,在顯示海圖時(shí)采用了雙緩存機(jī)制及內(nèi)存拷貝方式。首先在內(nèi)存中開(kāi)辟一塊與當(dāng)前DCpDC)大小一樣的內(nèi)存DCpMemoryDC),然后分別利用GDI+技術(shù)繪制各個(gè)圖層,最后再在OnDraw()中使用雙緩存機(jī)制,做一個(gè)屏幕拷貝,將內(nèi)存設(shè)備上的內(nèi)容一次性顯示在屏幕上,完成顯示工作。因?yàn)楦鲌D層的繪圖操作是不可見(jiàn)的,所以避免了窗口重繪時(shí)的閃爍現(xiàn)象。而雙緩存機(jī)制及內(nèi)存拷貝方式的使用,不僅提高了顯示速度,同時(shí)也使海圖在漫游時(shí)能平滑移動(dòng)而不產(chǎn)生滯留的感覺(jué)。

繪制電子海圖時(shí)使用的GDI+,是一種應(yīng)用程序編程接口(API),在GDI的基礎(chǔ)上發(fā)展而來(lái),是對(duì)原有GDI在功能上的升級(jí)。兩者在編程應(yīng)用上的本質(zhì)區(qū)別是GDI+用一個(gè)無(wú)狀態(tài)的模型取代了GDI中把選中項(xiàng)目放到設(shè)備環(huán)境(DC)對(duì)象上的主要狀態(tài)模型,每個(gè)繪圖操作都是相互獨(dú)立的。利用它的這個(gè)特點(diǎn),可將電子海圖上相同圖層,不同顏色的點(diǎn)、線、面物標(biāo)同時(shí)繪制而成,從而提高繪圖的速度。另外,應(yīng)用程序開(kāi)發(fā)人員在輸出屏幕信息的時(shí)候無(wú)須考慮具體顯示設(shè)備的細(xì)節(jié),只需引入Graphics類即可,真正實(shí)現(xiàn)了圖形硬件和應(yīng)用程序的相互隔離,使開(kāi)發(fā)人員編寫(xiě)設(shè)備無(wú)關(guān)的應(yīng)用程序變得非常容易。

3 雷達(dá)顯示

3.1 快速坐標(biāo)變換

高分辨率雷達(dá)掃描變換的關(guān)鍵技術(shù)是將天線掃描時(shí)的極坐標(biāo)轉(zhuǎn)換為顯示時(shí)的直角坐標(biāo)。雷達(dá)信號(hào)處理的實(shí)時(shí)性同樣也要求高速、高效的地址變換。所以,在雷達(dá)顯示中,采取一種快速的坐標(biāo)變換算法尤為重要。本文主要采用進(jìn)位值法來(lái)實(shí)現(xiàn)快速坐標(biāo)變換。

當(dāng)雷達(dá)觸發(fā)到來(lái)時(shí),鎖定一個(gè)天線方位角度q,然后距離r由零計(jì)數(shù)依次增加,物理意義上表明該方位由雷達(dá)天線中心逐步顯示到量程的邊緣。由于雷達(dá)回波信號(hào)的數(shù)據(jù)是徑向分布的,其對(duì)應(yīng)的直角坐標(biāo)可表示為式(1):

基于GDI+的電子海圖與雷達(dá)圖像的疊加顯示 1

由于︱cosq)︳1,︱sinq)︳1,所以每執(zhí)行一次加法,結(jié)果的變化量都不會(huì)超過(guò)1??紤]到屏幕坐標(biāo)的值為整數(shù),故將XY的值分別取整賦予屏幕坐標(biāo)。

從以上分析不難看出,執(zhí)行加法操作后真正用到的數(shù)據(jù)只有進(jìn)位信息,而這個(gè)值對(duì)于線性單調(diào)變化的rq每次都是個(gè)定值并且非01,所以在具體實(shí)現(xiàn)時(shí),可事先建立一個(gè)坐標(biāo)查詢表,表中對(duì)應(yīng)位存放每次加法操作執(zhí)行后的進(jìn)位信息,以便計(jì)算坐標(biāo)時(shí)調(diào)用。

3.2 雷達(dá)顯示

由于雷達(dá)實(shí)時(shí)更新數(shù)據(jù),所以采用描點(diǎn)的方式繪制,以反映船舶周圍目標(biāo)的運(yùn)動(dòng)態(tài)勢(shì)。首先,通過(guò)CDC::SetMapModeMM_ISOTROPIC)使x、y軸的邏輯坐標(biāo)相同,來(lái)保證繪制的雷達(dá)圖像是圓形,接著利用CDC::SetWindowExt()和CDC::SetViewportExt()分別設(shè)置窗口和視口的范圍,然后通過(guò)CDC::SetViewportOrg()設(shè)置視口原點(diǎn),最后在量化的方位上調(diào)用坐標(biāo)變換子程序完成雷達(dá)圖像的繪制。

其中,坐標(biāo)變換子程序負(fù)責(zé)計(jì)算并存儲(chǔ)量化方位上各點(diǎn)的直角坐標(biāo)值及該點(diǎn)對(duì)應(yīng)的顏色值,而在計(jì)算坐標(biāo)值的時(shí)候又調(diào)用了由快速坐標(biāo)變換得到的坐標(biāo)查詢表。

為了實(shí)時(shí)的繪制雷達(dá)圖像,在OnDraw()中設(shè)定一個(gè)時(shí)間間隔為2.5 s(雷達(dá)轉(zhuǎn)動(dòng)一周時(shí)間約為2.53 s)的定時(shí)器,通過(guò)調(diào)用SetTimer1,2500,NULL)來(lái)實(shí)現(xiàn),并且添加WM_TIMER的消息響應(yīng)函數(shù)OnTimer(),在響應(yīng)函數(shù)中實(shí)現(xiàn)雷達(dá)圖像的實(shí)時(shí)繪制。

4 電子海圖與雷達(dá)圖像的實(shí)時(shí)疊加

要將雷達(dá)圖像實(shí)時(shí)疊加在電子海圖上,選擇合理、精度高的坐標(biāo)變化方式,才能使靜態(tài)目標(biāo)完全吻合,動(dòng)態(tài)目標(biāo)實(shí)時(shí)準(zhǔn)確定位。在這里,電子海圖和雷達(dá)圖像的繪制都采用了Visual C++GDIGDI+函數(shù),無(wú)論是畫(huà)圖時(shí)的邏輯坐標(biāo)還是顯示時(shí)的設(shè)備坐標(biāo),均具有相同的單位,保證了繪圖時(shí)各點(diǎn)對(duì)應(yīng)位置的一致性;而兩者分別使用的坐標(biāo)變換則提高了坐標(biāo)變換的精度及繪圖的速度。

雷達(dá)圖像疊加于電子海圖,首先應(yīng)準(zhǔn)確定位雷達(dá)中心在海圖上的位置,將雷達(dá)實(shí)時(shí)位置信息通過(guò)顯示海圖時(shí)的坐標(biāo)變換(即實(shí)際地理坐標(biāo)®墨卡托投影坐標(biāo)®屏幕坐標(biāo)),轉(zhuǎn)換為屏幕坐標(biāo),從而實(shí)現(xiàn)船舶雷達(dá)實(shí)時(shí)動(dòng)態(tài)的顯示船舶航行時(shí)周圍的所有動(dòng)態(tài)和靜態(tài)目標(biāo)。

電子海圖采用矢量圖的方式加以顯示,可以實(shí)現(xiàn)無(wú)極縮放、局部放大、漫游等功能,而雷達(dá)則采用描點(diǎn)方式顯示,可根據(jù)用戶需要選擇不同量程,還能動(dòng)態(tài)地標(biāo)出目標(biāo)的距離及方位。一方面,雷達(dá)圖像能隨著電子海圖顯示比例尺的變化而放大、縮小;另一方面,電子海圖也能跟著雷達(dá)量程的變化而作出相應(yīng)的改變。

對(duì)于用戶關(guān)心的動(dòng)態(tài)目標(biāo),可根據(jù)用戶的選擇來(lái)進(jìn)行動(dòng)態(tài)的平滑跟蹤。同一海區(qū)的目標(biāo)還可進(jìn)行多目標(biāo)的疊加顯示,并通過(guò)不同的顏色來(lái)標(biāo)識(shí)目標(biāo)的狀態(tài)。目標(biāo)的動(dòng)態(tài)數(shù)據(jù)信息,不僅可以實(shí)時(shí)地在海圖上進(jìn)行疊加顯示,而且還可以在視窗中進(jìn)行文本的對(duì)照顯示,使用戶直觀地了解目標(biāo)的航行信息。

2是電子海圖與雷達(dá)圖像疊加顯示的效果圖(由于實(shí)驗(yàn)條件的限制,兩者顯示的是不同地區(qū),但在適當(dāng)?shù)睦走_(dá)量程和海圖比例尺下,對(duì)應(yīng)點(diǎn)坐標(biāo)是相同的,符合疊加顯示的要求)。

基于GDI+的電子海圖與雷達(dá)圖像的疊加顯示

5 結(jié)束語(yǔ)

本系統(tǒng)在Visual C++6.0下利用GDI+技術(shù)實(shí)現(xiàn)了電子海圖與雷達(dá)圖像的實(shí)時(shí)疊加顯示,較好地解決了電子海圖、雷達(dá)圖像單獨(dú)顯示和疊加顯示的問(wèn)題,達(dá)到了實(shí)時(shí)性的要求。與單一的電子海圖相比,兩者的疊加,不僅突出了電子海圖系統(tǒng)的信息顯示能力,而且提高了使用雷達(dá)的避碰能力。同時(shí),使調(diào)度人員能夠方便地了解到作業(yè)船舶在海上的準(zhǔn)確位置,及時(shí)、直觀地了解船舶動(dòng)態(tài),便于準(zhǔn)確下達(dá)調(diào)度命令,減少了調(diào)度失誤,從而在一定程度上減少了由調(diào)度人員的失誤而引起的時(shí)間延誤和作業(yè)難度的增加。

參考文獻(xiàn)

1 周永余,陳永冰等.艦船電子海圖顯示與信息系統(tǒng)發(fā)展評(píng)述.船舶工程,2005.4

2 許開(kāi)宇.符合國(guó)際標(biāo)準(zhǔn)的電子海圖顯示和信息系統(tǒng)(ECDIS).船舶工程,1999

3 石京東.雷達(dá)圖像和電子海圖系統(tǒng)的疊加應(yīng)用.航海技術(shù),2007.1

4 畢紅葵,王紅等.光柵掃描雷達(dá)顯示系統(tǒng)關(guān)鍵技術(shù)問(wèn)題解決方案.2002.5

5 夏志忠,馬紅,王淑靜.船舶動(dòng)態(tài)監(jiān)測(cè)系統(tǒng)的實(shí)現(xiàn).微計(jì)算機(jī)信息,1999.2

6 []David JKruglinskiInside Visual C++,4th Edition[M].清華大學(xué)出版社,1999

作者:劉毅 索繼東 曹蘭蘭  來(lái)源:航海技術(shù)

關(guān)于我們

南京遠(yuǎn)洋運(yùn)輸股份有限公司是一個(gè)專門(mén)經(jīng)營(yíng)干散貨船舶運(yùn)輸?shù)膶I(yè)船東公司,成立于1988年,原名南京遠(yuǎn)洋運(yùn)輸公 司,1994年進(jìn) 行了股份制改 造,更為現(xiàn)名。

業(yè)務(wù)領(lǐng)域

南京遠(yuǎn)洋擁有船舶資產(chǎn),是以經(jīng)營(yíng)遠(yuǎn)洋貨物運(yùn)輸為主、又集國(guó)際船舶管理、國(guó)際船舶代理、海員勞務(wù)輸出、船舶物 料供應(yīng)和投資 咨詢服務(wù)為一體的綜合性遠(yuǎn)洋運(yùn)輸企業(yè)。

加入我們

我們堅(jiān)信:人才是發(fā)展之本!
我們依據(jù)各崗位職責(zé)的不同,參考當(dāng)前市場(chǎng)實(shí)際,為廣大員工提供富有競(jìng)爭(zhēng)力的薪資福利。

聯(lián)系我們

公司地址:南京市江東中路311號(hào)中泰國(guó)際廣場(chǎng)05幢18 樓 郵政編碼:210019
電話:025-58802148 87792001
傳真:025-58802147
微信公眾號(hào)

微信掃一掃關(guān)注我們