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

經(jīng)驗交流

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

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

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

0 引言

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

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

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

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

電子海圖的顯示主要按照讀取海圖數(shù)據(jù)、轉(zhuǎn)換海圖數(shù)據(jù)及顯示海圖的順序完成。為了保證S52標(biāo)準(zhǔn)要求的顯示速度及內(nèi)容,顯示海圖時采用雙緩存機(jī)制、內(nèi)存拷貝方式和GDI+技術(shù),來提高海圖顯示的速度,使海圖在漫游時能快速、平滑地移動;而繪制雷達(dá)圖像則運(yùn)用快速坐標(biāo)變換滿足實時性的要求。電子海圖與雷達(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)實模型轉(zhuǎn)換而來,它們主要包括:特征記錄、空間記錄、矢量記錄、地理特征記錄、指針字段等。在S57文件中,DDR包含了S57數(shù)據(jù)結(jié)構(gòu)中各個字段的描述:DR則包含了實際的海圖數(shù)據(jù),主要由特征記錄和矢量記錄組成。

2.2 海圖顯示的方法

由于S57海圖數(shù)據(jù)文件將ISO/IEC8211:1994作為其數(shù)據(jù)封裝的標(biāo)準(zhǔn),而這個標(biāo)準(zhǔn)并不適合顯示時使用,所以需要定義自己的數(shù)據(jù)結(jié)構(gòu),以滿足IMO S52標(biāo)準(zhǔn)要求的顯示速度及內(nè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等。通過自定義多個結(jié)構(gòu)體,先存儲讀取的基本海圖信息,如海圖比例尺、海圖左上角及有下角經(jīng)緯度和海圖中心等,然后將海圖數(shù)據(jù)進(jìn)行分類、排序并分別讀人到對應(yīng)的點(diǎn)、線、面鏈表中,以供下一步使用。

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

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

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

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

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

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

3 雷達(dá)顯示

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

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

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

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

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

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

3.2 雷達(dá)顯示

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

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

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

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

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

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

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

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

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

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

5 結(jié)束語

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

參考文獻(xiàn)

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

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

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

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

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

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

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

關(guān)于我們

南京遠(yuǎn)洋運(yùn)輸股份有限公司是一個專門經(jī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)營遠(yuǎn)洋貨物運(yùn)輸為主、又集國際船舶管理、國際船舶代理、海員勞務(wù)輸出、船舶物 料供應(yīng)和投資 咨詢服務(wù)為一體的綜合性遠(yuǎn)洋運(yùn)輸企業(yè)。

加入我們

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

聯(lián)系我們

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

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