999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于國產(chǎn)化的艦船一維距離像繪制研究

2021-03-19 09:27:52強(qiáng),張超,錢
雷達(dá)與對抗 2021年1期

李 強(qiáng),張 超,錢 鷗

(中國船舶集團(tuán)有限公司第八研究院,南京 211153)

0 引 言

隨著部隊(duì)作戰(zhàn)使用需求不斷提高,對雷達(dá)的主被動(dòng)探測能力提出了新的需求,其中就包括艦船一維像的繪制。一維像獲取方式簡單,并具有很高的實(shí)時(shí)性。通過一維像可直觀地觀察遠(yuǎn)距離艦船目標(biāo)的特性,并對艦船目標(biāo)進(jìn)行識(shí)別分類,對海上偵察及警戒有著重要意義。因此,研究艦船一維距離像的實(shí)時(shí)繪制具有現(xiàn)實(shí)意義。

現(xiàn)代化雷達(dá)對程序的可移植性要求不斷提高,傳統(tǒng)的在單一平臺(tái)運(yùn)行的一維像繪制程序已不能滿足應(yīng)用的需求。此外,隨著現(xiàn)代化雷達(dá)信息傳輸速率和數(shù)據(jù)處理實(shí)時(shí)性能力的提高,終端軟件的運(yùn)行及繪制效率也應(yīng)不斷進(jìn)步。因此,在各平臺(tái)上進(jìn)行復(fù)雜圖形的繪制急需一個(gè)功能強(qiáng)大且高效的圖形開發(fā)標(biāo)準(zhǔn)。

針對現(xiàn)代化雷達(dá)對艦船一維像繪制的需求,將QT和開放式圖形庫(Open Graphics Library,OpenGL)繪圖工具相結(jié)合,提出了一種基于國產(chǎn)化的艦船一維像繪制方法。通過與雷達(dá)傳統(tǒng)一維像繪制方法比較,本文提出的方法在滿足軟件可跨平臺(tái)的同時(shí)繪制效率也有了顯著提高,滿足現(xiàn)代化雷達(dá)對國產(chǎn)化的要求,具有重要的工程應(yīng)用價(jià)值。

1 一維距離像的形成原理

雷達(dá)系統(tǒng)一般為微波高分辨率雷達(dá),其工作頻率位于高頻區(qū),工作波長遠(yuǎn)小于艦船的尺寸。此時(shí)艦船目標(biāo)將連續(xù)占據(jù)多個(gè)距離單元,散射的回波形成可視化的目標(biāo)圖形,又稱一維距離像。[1]如圖1所示,它是目標(biāo)精細(xì)的結(jié)構(gòu)特征,描述了目標(biāo)散射中心沿視線方向的分布。

圖1 目標(biāo)的一維距離像示意圖

顯控終端顯示的距離像為功率距離像,是實(shí)數(shù)的一維距離像。雷達(dá)回波在經(jīng)過 Dechirp處理后在 FPGA中完成 I/Q正交工作, I/Q正交之后復(fù)信號再經(jīng)過IFFT加窗處理后即可形成艦船目標(biāo)的一維距離像。[2]顯控終端通過網(wǎng)絡(luò)報(bào)文接收和存儲(chǔ)一維像數(shù)據(jù),并通過繪圖軟件將一維像圖形顯示在終端界面中。

2 一維像的繪制方法

雷達(dá)傳統(tǒng)的一維像繪制方法有兩種,一種是基于MFC開發(fā)環(huán)境使用D3D(Direct 3D)工具進(jìn)行繪制,另一種基于QT開發(fā)環(huán)境使用QPaint工具進(jìn)行繪制。為適應(yīng)現(xiàn)代化雷達(dá)的應(yīng)用需求,本文結(jié)合上述兩種方法的優(yōu)點(diǎn)設(shè)計(jì)了基于QT開發(fā)環(huán)境使用OpenGL工具進(jìn)行繪制的方法。

2.1 D3D繪制方法

D3D是一款基于Windows系統(tǒng)的繪制3D圖形的應(yīng)用程序接口。它具有良好的硬件兼容性和友好的編程方式等優(yōu)點(diǎn),現(xiàn)在幾乎所有具有3D加速功能的主流顯卡都能夠和D3D良好的兼容。D3D工具最主要的缺點(diǎn)是只支持Windows平臺(tái),這極大地限制了嵌入式設(shè)備的選擇,同時(shí)也有使用復(fù)雜等缺陷。

2.2 QPaint繪制方法

QPaint是QT二維圖形繪制引擎的基類,包含了大量高度優(yōu)化后的繪制函數(shù)。無論是簡單的線還是復(fù)雜的形狀都可調(diào)用里面的函數(shù)進(jìn)行繪制,并可在多平臺(tái)進(jìn)行移植。由于QPaint利用CPU資源和軟件技術(shù)結(jié)合,在高頻繪畫時(shí)占用CPU資源較高,會(huì)造成繪制復(fù)雜圖形時(shí)卡頓的現(xiàn)象。

2.3 OpenGL繪制方法

OpenGL是一個(gè)專業(yè)的圖形程序接口,具有跨編程語言、跨平臺(tái)的優(yōu)點(diǎn)。[3]它獨(dú)立于窗口系統(tǒng)和操作系統(tǒng),擁有一個(gè)調(diào)用方便、功能強(qiáng)大的底層圖形庫,集成了曲面造型、圖形變換、紋理、融合、霧化等一系列復(fù)雜的圖形函數(shù)。[4]OpenGL的工作流程如圖2所示。

圖2 OpenGL基本工作流程圖

3 QT與OpenGL繪制一維像過程

如圖3所示,一維像的繪制過程包括數(shù)據(jù)接收與轉(zhuǎn)存、圖像繪制、操控響應(yīng)及重繪4個(gè)過程。一維像圖形可根據(jù)數(shù)據(jù)處理軟件發(fā)送的一維像數(shù)據(jù)報(bào)文進(jìn)行實(shí)時(shí)更新。

圖3 一維像繪制流程

3.1 一維像數(shù)據(jù)的接收與轉(zhuǎn)存

雷達(dá)前端設(shè)備在獲取回波信息后由數(shù)據(jù)處理分機(jī)轉(zhuǎn)換成實(shí)數(shù)數(shù)據(jù)通過網(wǎng)絡(luò)報(bào)文發(fā)送至顯控終端。顯控終端在對數(shù)據(jù)預(yù)處理后存儲(chǔ)在緩存區(qū)域中,便于軟件調(diào)用及修改。本文通過UDP通訊方式進(jìn)行數(shù)據(jù)的傳輸。由于UDP單包發(fā)送數(shù)據(jù)量有限,將單幅一維像數(shù)據(jù)拆分成不同數(shù)據(jù)包進(jìn)行發(fā)送,并通過報(bào)文觸發(fā)號進(jìn)行數(shù)據(jù)拼接實(shí)現(xiàn)全部信息的獲取。報(bào)文數(shù)據(jù)接收格式如下:

Unsigned short usTriggerNum

unsigned short usCurrTriggerNo

unsigned char bykdfxData[DATASIZE]

其中,usTriggerNum為報(bào)文觸發(fā)總數(shù),用來告知接收方一維像數(shù)據(jù)拆分成的報(bào)文個(gè)數(shù);usCurrTriggerNo為當(dāng)前報(bào)文的觸發(fā)序號,用來進(jìn)行數(shù)據(jù)的拼接;bykdfxData為存儲(chǔ)一維像的數(shù)據(jù)結(jié)構(gòu)體;DATASIZE為每條報(bào)文中傳輸一維像數(shù)據(jù)的大小。

將接收到的報(bào)文個(gè)數(shù)與觸發(fā)總數(shù)進(jìn)行對比判斷報(bào)文傳輸?shù)臏?zhǔn)確性,若數(shù)據(jù)傳輸無誤則通過觸發(fā)序號進(jìn)行數(shù)據(jù)的拼接。拼接后的數(shù)據(jù)格式包含10個(gè)一維原始像,其數(shù)據(jù)格式如下:

float*m_XData[HorReserveNum]

float*m_YData[HorReserveNum]

其中,m_XData用來存儲(chǔ)X軸數(shù)據(jù);m_YData用來存儲(chǔ)Y軸數(shù)據(jù);HorReserveNum值為10。最終,將拼接后的數(shù)據(jù)轉(zhuǎn)存為繪制一維像圖像的數(shù)據(jù)格式,格式為GLfloat vertices[verNum][2]。數(shù)據(jù)結(jié)構(gòu)為二維數(shù)組,verNum為所需繪制點(diǎn)的總個(gè)數(shù),vertices[i][0]為點(diǎn)i在X軸上的坐標(biāo)位置,vertices[i][1]為點(diǎn)i在Y軸上的坐標(biāo)位置。

3.2 一維像圖像繪制

完整的一維像顯示界面應(yīng)包含一維距離像、對應(yīng)的坐標(biāo)網(wǎng)格、兩點(diǎn)測距線及相關(guān)的文字描述。一維距離像數(shù)據(jù)成周期性變化,而其對應(yīng)的坐標(biāo)網(wǎng)格及文字描述基本不變,加上兩點(diǎn)測距信息根據(jù)人工操作實(shí)時(shí)改變,對界面的刷新造成一定的困難。本文將上述圖形分為不同的圖層進(jìn)行顯示。繪制單幅一維像時(shí),不同一維距離像幅度和距離變化范圍不同,需計(jì)算每副一維像的坐標(biāo)網(wǎng)格及兩點(diǎn)距離。繪制10副一維距離像時(shí)需計(jì)算10副一維像的綜合坐標(biāo)網(wǎng)格信息。最終,將轉(zhuǎn)存后的數(shù)據(jù)調(diào)用OpenGL中的繪制函數(shù),完成視頻的最終繪制。

3.2.1 圖形分層

QT提供基于圖元的Model/View架構(gòu)的GraphicsView框架,可將繪制的圖形分層,并依據(jù)圖層的層疊順序使用Graphics Scene進(jìn)行管理。完整的一維像圖形包括以下功能:一維像的繪制、描述文字的繪制、兩點(diǎn)測距線的繪制及坐標(biāo)網(wǎng)格的繪制,依據(jù)上述功能可分為描述文字圖層、測距線圖層、坐標(biāo)網(wǎng)格圖層及一維像圖層。如圖3所示,圖層的層疊順序由上而下依次是:

(1) 描述文字圖層:繪制輔助文字,如坐標(biāo)軸單位、測量距離信息等;

(2) 測距線圖層:實(shí)現(xiàn)兩點(diǎn)測距功能,并繪制測距線;

(3) 坐標(biāo)網(wǎng)格圖層:繪制一維像的X軸、Y軸以及輔助網(wǎng)格線;

(4) 一維像圖層:繪制一維距離像。

圖4 一維像繪制分層架構(gòu)

3.2.2 繪制一維像的計(jì)算公式

(1) 坐標(biāo)網(wǎng)格

繪制坐標(biāo)網(wǎng)格時(shí),需計(jì)算出X軸及Y軸的最大值及最小值。以計(jì)算Y軸(幅度)最大值為例,計(jì)算公式為

MaxY=max (MaxY1,MaxY2,…,MaxY10)

(1)

式中,MaxYi為單幅一維像的幅度最大值,每副一維像都包含151 024組數(shù)據(jù),計(jì)算公式為

MaxYi=max (Yi1,Yi2,…,Yi151024)

(2)

(2) 兩點(diǎn)測距

兩點(diǎn)測距線的繪制需計(jì)算兩點(diǎn)間距離,具體方法是兩點(diǎn)間的像素點(diǎn)個(gè)數(shù)與每個(gè)像素點(diǎn)距離的乘積,以計(jì)算Y軸幅度差值為例,其計(jì)算公式為

(3)

式中,NP為單幅一維像圖形Y軸所需像素點(diǎn),Y1、Y2分別為起點(diǎn)和終點(diǎn)的位置信息。

(3) 數(shù)據(jù)的轉(zhuǎn)存

需將拼接后的數(shù)據(jù)轉(zhuǎn)存為繪制一維像坐標(biāo)位置的二維數(shù)組,以計(jì)算第i個(gè)點(diǎn)的Y軸坐標(biāo)為例,其計(jì)算公式為

vertices[i][1]=((YData[i]-MinY/fYCell)+

TopSize)/AllSize

(4)

式中,YData[i]為第i個(gè)點(diǎn)的Y軸數(shù)據(jù),TopSize為繪制一維像界面窗口相對于總體界面上端距離的像素點(diǎn)數(shù),AllSize為總體界面寬度所具有的像素點(diǎn)個(gè)數(shù),fYCell為單個(gè)像素點(diǎn)代表的Y值,其計(jì)算公式為

fYCell=(MaxY-MinY)/(AllSize-TopSize-DownSize)

(5)

式中,DownSize為繪制一維像界面窗口相對于總體界面下端距離的像素點(diǎn)數(shù)。

3.2.3 視頻繪制

調(diào)用OpenGL繪圖工具使用轉(zhuǎn)存后的數(shù)據(jù)進(jìn)行繪制一維像圖像,具體方法如下:

(1) glBegin(GL_LINE_STRIP)開始調(diào)用OpenGL工具進(jìn)行圖像的繪制;

(2) glEnableClientState( GL_VERTEX_ARRAY)啟用頂點(diǎn)數(shù)組進(jìn)行圖像的繪制;

(3) glVertexPointer( 2, GL_FLOAT, 0, vertices)將轉(zhuǎn)存后的一維像數(shù)組數(shù)據(jù)上傳至OpenGL工具中;

(4) glDrawArrays( GL_LINE_STRIP, 0, count)進(jìn)行繪制一維距離像圖像。

3.3 一維像操控響應(yīng)

一維像圖形的操控主要包括兩點(diǎn)測距、圖形放大、圖形還原及一維像圖形切換。

(1) 兩點(diǎn)測距操控

將異形刀片加工成形,安裝到實(shí)際割草車上開展試驗(yàn)研究,驗(yàn)證其割草效果。雖刀片扭矩有一定下降,但刀口的切割速度依然很高,實(shí)際割草效果仍能達(dá)到要求。經(jīng)試驗(yàn)測試結(jié)果表明,優(yōu)化后刀片上的扭矩減小了18%左右,與仿真計(jì)算的誤差小于5%,證明仿真結(jié)果有效。另外刀片功率減小了216 W,節(jié)能約8.5%,達(dá)到了滿意的節(jié)能效果。圖15(a)是試驗(yàn)用割草車,圖15(b)是優(yōu)化后的異形刀片。

mousePressEvent(QMouseEvent*event)用來處理鼠標(biāo)單擊事件的響應(yīng)函數(shù)。當(dāng)鼠標(biāo)在一維像圖形上進(jìn)行右擊時(shí)將該點(diǎn)設(shè)置為需進(jìn)行測距的點(diǎn),連續(xù)點(diǎn)擊兩次表示依次選取測距的起點(diǎn)和終點(diǎn)。

(2) 圖形放大操控

mouseReleaseEvent(QMouseEvent*event)用來處理圖像放大時(shí)間的響應(yīng)函數(shù)。當(dāng)使用鼠標(biāo)進(jìn)行區(qū)域選擇操作時(shí)將該事件的起始點(diǎn)信息作為需放大的圖像的起始范圍。

(3) 圖形還原操控

mouseDoubleClick(QMouseEvent*ev)用來處理鼠標(biāo)雙擊事件的響應(yīng)函數(shù)。當(dāng)鼠標(biāo)在一維像圖形上雙擊時(shí)該一維像圖形還原成原始圖形。

(4) 一維像圖形切換操控

3.4 一維像重繪

一維像的重繪包括定時(shí)器的調(diào)用、窗口的重新布置及重新繪制等函數(shù),具體函數(shù)如下:

(1) initializeGL()用來初始化窗口部件,例如設(shè)置顯示窗口大小,給一維像數(shù)據(jù)開辟存儲(chǔ)空間等。

(2) paintGL()用來繪制OpenGL的窗口。數(shù)據(jù)產(chǎn)生變化需更新圖像時(shí)調(diào)用該函數(shù),里面包含繪制10個(gè)一維像的函數(shù)和繪制單個(gè)一維像的函數(shù)。

(3) resizeGL(int width, int height)為用來處理窗口大小變換的函數(shù),width和height分別表示新窗口的寬和高。

(4) timeEvent(QTimeEvent *ev)為定時(shí)器函數(shù),每兩秒判斷一次,若有新數(shù)據(jù)更新或有鍵盤、鼠標(biāo)等圖形操控等事件發(fā)生調(diào)用圖形更新程序。

4 一維像仿真繪制結(jié)果對比

模擬器讀取存于本地文件中的一維像數(shù)據(jù),通過UDP報(bào)文形式發(fā)送至顯控終端來進(jìn)行仿真實(shí)驗(yàn)。一組一維像數(shù)據(jù)包含10副一維像圖形,每副一維像圖形又分為10個(gè)UDP數(shù)據(jù)包,每幅一維像的數(shù)據(jù)大小為151 024 Bit,以圖形標(biāo)識(shí)號進(jìn)行區(qū)分。

圖5、6和7分別為使用D3D繪制、使用QPaint繪制和使用OpenGL繪制的一維像圖形。

圖5 D3D繪制單幅一維像效果圖

圖6 QPaint繪制單幅一維像效果圖

圖7 OpenGL繪制單幅一維像效果圖

使用OpenGL繪制單幅一維像圖形幅度介于0~122之間,距離介于0~35 000 m之間,與D3D及QPaint繪制的一維像圖形基本一致。

進(jìn)一步查看操控后的一維像圖形實(shí)時(shí)繪制功能,圖8和圖9分別為使用OpenGL畫的10副一維像圖像和維像放大后的圖像。

圖8 OpenGL繪制10副一維像效果圖

圖9 OpenGL繪制10副一維像區(qū)域放大效果圖

在繪制10副一維像和進(jìn)行放大操控時(shí),繪制執(zhí)行時(shí)間小于10 ms,整體運(yùn)行流暢無卡頓。其他方法繪制效果統(tǒng)計(jì)如表1所示。

表1 各方法繪制效果統(tǒng)計(jì)表

由表1可知,在繪制能力上,D3D與OpenGL方法繪制效率較高,繪制方法比較穩(wěn)定;QPaint方法只適用于繪制簡單圖像。在可移植性能上,QPaint與OpenGL方法可移植性高,適用于大多數(shù)系統(tǒng);而D3D方法只適用Windows系統(tǒng)。綜上所述,本文提出的方法滿足現(xiàn)代化高分辨率雷達(dá)對一維距離像的繪制要求,可應(yīng)用于國產(chǎn)化平臺(tái)。

5 結(jié)束語

實(shí)驗(yàn)表明,本文提出的基于QT與OpenGL的艦船一維像繪制方法能夠有效解決一維像的繪制效率問題及程序的可移植性問題,滿足現(xiàn)代化雷達(dá)顯示軟件國產(chǎn)化的需求。目前,該一維像繪制軟件實(shí)現(xiàn)了窄帶、寬帶雷達(dá)一維距離像繪制,將來可擴(kuò)展應(yīng)用作為寬帶一維像圖形識(shí)別研究的基礎(chǔ)。

主站蜘蛛池模板: 亚洲首页在线观看| 欧美一区二区精品久久久| 亚洲综合二区| 午夜性刺激在线观看免费| 欧美一区国产| AV熟女乱| 国产白浆视频| 免费看的一级毛片| 日韩国产 在线| 啦啦啦网站在线观看a毛片| 中文字幕在线不卡视频| 女人天堂av免费| 手机成人午夜在线视频| 精品三级在线| 欧美日韩91| 精品国产成人高清在线| 精品免费在线视频| 亚洲人成网站观看在线观看| 国产一区亚洲一区| 国产福利免费视频| 波多野结衣亚洲一区| 亚洲综合色婷婷中文字幕| 欧美亚洲国产视频| 国产精品无码一二三视频| 亚洲午夜久久久精品电影院| 午夜一级做a爰片久久毛片| 精品小视频在线观看| 正在播放久久| 亚洲最黄视频| 欧美一级黄片一区2区| 国产激情无码一区二区三区免费| 亚洲一区二区精品无码久久久| 国产精品香蕉在线观看不卡| 国产成人精品在线| 久久一本精品久久久ー99| 香蕉eeww99国产在线观看| 久久婷婷人人澡人人爱91| 天天综合色网| 亚洲第一成网站| 凹凸国产熟女精品视频| 91精品国产自产在线观看| 就去色综合| 一区二区三区成人| 亚洲不卡网| 日韩欧美91| 亚洲AⅤ波多系列中文字幕| 日本不卡视频在线| 久久黄色毛片| www亚洲精品| 亚州AV秘 一区二区三区| 色欲不卡无码一区二区| 亚洲国产午夜精华无码福利| 日韩经典精品无码一区二区| 国产一二三区在线| 国产在线拍偷自揄拍精品| 青草视频久久| 亚洲精品成人福利在线电影| 久久国产精品影院| 国产在线精品99一区不卡| 免费一极毛片| 国产交换配偶在线视频| 婷婷伊人久久| 亚洲综合色婷婷中文字幕| 国产大全韩国亚洲一区二区三区| 国产成人亚洲无码淙合青草| 福利一区三区| 在线观看网站国产| 999在线免费视频| 2021精品国产自在现线看| 国产激情无码一区二区三区免费| 欧美综合成人| 精品国产99久久| 久久中文字幕av不卡一区二区| 国产va免费精品观看| 在线日韩一区二区| 亚洲高清无码精品| 成年看免费观看视频拍拍| 99热6这里只有精品| 99热这里只有精品免费| A级全黄试看30分钟小视频| 久久久91人妻无码精品蜜桃HD| 亚洲精品成人片在线播放|