高 森 熊 毅 黃亞楠
(中國電子科技集團(tuán)公司第三十八研究所,安徽 合肥 230088)
隨著現(xiàn)代雷達(dá)探測技術(shù)進(jìn)步和應(yīng)用場景拓展,操作人員對(duì)雷達(dá)目標(biāo)顯示方式有了更高的要求。 現(xiàn)有的目標(biāo)顯示方式有文本、 列表、 PBEA 顯、 三維曲線、GIS 等[1-5]。 但它們對(duì)歷史目標(biāo)與地理區(qū)域之間關(guān)系的展示,無法滿足操作人員的需求。
本文提出一種基于偽彩圖[6-8]的雷達(dá)歷史目標(biāo)顯示方法, 該方法可以直觀反映歷史目標(biāo)與地理區(qū)域間的內(nèi)在聯(lián)系, 為操作人員分析目標(biāo)分布, 設(shè)定重點(diǎn)探測區(qū)域提供依據(jù)。
偽彩圖全稱偽彩色圖像(pseudo-color),與真彩圖每個(gè)像素值都有具體RGB 三色分量不同,它的每個(gè)像素值實(shí)際上是對(duì)應(yīng)著一個(gè)索引值, 而索引值又是色彩查找表(CLUT)的入口地址,通過該地址,可以取出包含RGB 分量的強(qiáng)度值。 這種通過映射方式獲取像素值繪制出的彩色圖像,被稱為偽彩圖。
圖元,QGraphicsItem 類是所有圖元的基類,Qt 平臺(tái)內(nèi)置了文本、橢圓、點(diǎn)、線等標(biāo)準(zhǔn)圖元。 同時(shí),通過基類的繼承,設(shè)計(jì)者可以實(shí)現(xiàn)圖元的自定義設(shè)計(jì)。
場景,QGraphicsScene 類提供了圖形視圖顯示的場景,也是圖元對(duì)象的容器。
視圖,QGraphicsView 類提供了一個(gè)觀察場景的窗口。 設(shè)計(jì)者可以通過改變視圖與場景的尺度實(shí)現(xiàn)縮放, 通過改變視圖中心實(shí)現(xiàn)拖動(dòng)。 視圖類還提供了視圖和場景間的坐標(biāo)轉(zhuǎn)換函數(shù)。
色彩查找表的設(shè)計(jì)應(yīng)滿足兩點(diǎn)要求:(1)區(qū)域之間色值有明顯差異;(2)在偽彩圖繪制過程中,通過索引值可以迅速取出地址中的色值。 基于以上兩點(diǎn), 將色彩查找表作如下設(shè)計(jì):
QColor colorArray[41];
為了滿足色值間有明顯差異的需求, 在數(shù)組中插入色值差異較大的點(diǎn),作為里程點(diǎn)。
colorArray[0] = QColor(0,0,255,100);
colorArray[10] = QColor(0,255,0,100);
colorArray[20] = QColor(255,255,0,100);
colorArray[30] = QColor(255,120,0,100);
colorArray[40] = QColor(255,0,0,100);
最后,階梯式分配兩個(gè)相鄰里程點(diǎn)間差值。
圖1 地理區(qū)域劃分示意圖
地理區(qū)域劃分是在極坐標(biāo)系下進(jìn)行的, 如圖1 所示, 該坐標(biāo)系以雷達(dá)為極點(diǎn)O, 以正北為極軸OY,角度值順時(shí)針遞增(OX 為90°),旋轉(zhuǎn)一周后回到正北。
區(qū)域劃分設(shè)計(jì)將圓劃分為36 個(gè)扇區(qū),每個(gè)扇區(qū)以距離值等分10 份,將區(qū)域劃分為360 個(gè)子區(qū)域。 如圖1,Region[i][j]即為某一子區(qū)域。 將探測到的歷史目標(biāo)以落入子區(qū)域分別記數(shù), 該數(shù)值最終對(duì)應(yīng)色彩查找表的索引值。
Short regionValue[36][10];
首先定義繪圖和設(shè)備對(duì)象,因篇幅有限,以下代碼有部分偽代碼。
QSize size = view->size;
QImage img = QImage(size);
QPainter painter(&img);
然后,遍歷子區(qū)域計(jì)數(shù)數(shù)組,獲取regionValue[i][j]的值,對(duì)應(yīng)子區(qū)域region[i][j]探測到目標(biāo)次數(shù)。 將目標(biāo)數(shù)作為索引值,查找色彩查找表,獲取對(duì)應(yīng)的色值,對(duì)繪圖對(duì)象進(jìn)行賦值。
QColor ind = colorArray[regionValue[i][j]];
Painter.setPen(QPen(ind),1);
Painter.setBrush(QBrush(ind));
最后繪制子區(qū)域的偽彩圖。 偽代碼如下:
QPointF p_tl, p_tr, p_bl, p_br;
QPointF p[4] = { p_tl, p_tr, p_bl, p_br };Painter.drawPolygon(p,4);
遍歷結(jié)束后,可繪制出完整的偽彩圖圖元,將其加載到場景里即可完成整個(gè)偽彩圖的繪制過程。
圖2 偽彩圖繪制流程圖
偽彩圖繪制流程如圖2。 首先,對(duì)色彩查找表和子區(qū)域計(jì)數(shù)數(shù)組進(jìn)行初始, 當(dāng)操作人員在窗口輸入日期區(qū)間后, 繪制方法先后完成歷史目標(biāo)信息的讀取、賦值計(jì)數(shù)數(shù)組等操作;然后,遍歷所有子區(qū)域,查找子區(qū)域?qū)?yīng)的色彩查找表值, 賦值繪圖對(duì)象, 繪制子區(qū)域偽彩圖;最后,完成遍歷,將繪制好的區(qū)域偽彩圖作為圖元,加載到場景中進(jìn)行顯示。
在某項(xiàng)目中采用Qt5.7.0 進(jìn)行偽彩圖繪制和顯示的設(shè)計(jì)開發(fā)。 顯示效果如下: 圖3 是未顯示偽彩圖圖元時(shí)的軟件截圖, 主顯示窗口為P 顯; 圖4 為顯示偽彩圖、 靜默區(qū)和起始區(qū)圖元后的軟件截圖, 上述圖元均疊加在P 顯窗口。
圖3 未疊加偽彩圖的主顯窗口
圖4 疊加偽彩圖后的主顯窗口
實(shí)際應(yīng)用表明,偽彩圖展示歷史目標(biāo)的顯示方式,可以直觀、 簡捷的展示地理區(qū)域與歷史目標(biāo)間的內(nèi)在聯(lián)系, 為操作人員設(shè)置靜默區(qū)、 起始區(qū)等重點(diǎn)區(qū)域的操作,提供準(zhǔn)確的依據(jù),而且,該顯示方式不占用額外窗口,偽彩圖顯示與隱藏一鍵切換,操作靈活簡便。
本文提出一種基于偽彩圖的雷達(dá)歷史目標(biāo)顯示方法。 該方法可以在不占用額外窗口的前提下, 將雷達(dá)歷史目標(biāo)與地理區(qū)域間關(guān)系以偽彩圖的顯示方式展現(xiàn)給操作人員, 并為重點(diǎn)區(qū)域的設(shè)置提供依據(jù), 豐富了雷達(dá)目標(biāo)的顯示方式, 增強(qiáng)了重點(diǎn)區(qū)域設(shè)置的準(zhǔn)確性。 該技術(shù)已經(jīng)應(yīng)用在多款雷達(dá)顯控軟件中。 應(yīng)用結(jié)果表明, 該技術(shù)可以準(zhǔn)確形象的反應(yīng)雷達(dá)歷史目標(biāo)與地理區(qū)域間的內(nèi)在聯(lián)系。