亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于OpenGL的SAR實(shí)時(shí)圖像顯示

        2015-04-12 00:00:00張娟劉國霞陳光輝
        現(xiàn)代電子技術(shù) 2015年13期

        摘 要: 成像雷達(dá)在實(shí)際的操作中顯示的圖像數(shù)據(jù)量頗大,并且能呈現(xiàn)出圖形的許多細(xì)節(jié),因此,對顯示的現(xiàn)實(shí)性、實(shí)時(shí)性要求很高。圖像在屏面空間滾動時(shí),數(shù)據(jù)中會包含已經(jīng)輸入的原始圖像數(shù)據(jù),同時(shí)也會滾動顯示新錄入的圖像數(shù)據(jù),兩組圖像數(shù)據(jù)在同一平面顯示,而且要注意到在進(jìn)行圖像數(shù)據(jù)顯示時(shí),還要求在其空間上疊加相應(yīng)的飛參信息和時(shí)間信息。因此,為滿足成像雷達(dá)的顯示需求,在VxWorks操作系統(tǒng)下通過采用OpenGL系統(tǒng)具有的雙緩存技術(shù)和融合技術(shù),可以獲得平滑的、完整的、動感的、實(shí)時(shí)的動畫效果。

        關(guān)鍵詞: OpenGL; SAR; 雙緩存; VxWorks操作系統(tǒng)

        中圖分類號: TN911.73?34 文獻(xiàn)標(biāo)識碼: A 文章編號: 1004?373X(2015)13?0007?03

        Abstract: Since imaging radar needs to display massive image data and can present many graphic details in practical operation, the requirements in the aspects of displayed authenticity and real?time capacity are very high. When image is scrolling in display screen, the image data consists the entered original image data and new entered image data. The two sets of image data are displayed in the same plane. It is noticed that when image data displays, it also requires to overlay the relevant flight?parameter information and time information. To satisfy the display requirements of imaging radar, dual?cache technology and fusion technology of OpenGL system were adopted in VxWorks operating system, by which the smooth, complete, dynamic and real?time animation effect can be obtained.

        Keywords: OpenGL; SAR; dual?cache; VxWorks operating system

        0 引 言

        VxWorks操作系統(tǒng)是一種嵌入式操作系統(tǒng),因其在實(shí)際操作中,具有良好的性價(jià)比,操作程序簡潔實(shí)用,運(yùn)行扎實(shí)可靠被廣泛應(yīng)用在通信、軍事、航空、航天等高精尖技術(shù)以及實(shí)時(shí)性要求極高的領(lǐng)域中[1]。VxWorks操作系統(tǒng)在圖形界面的通用開發(fā)方式是采用風(fēng)河公司的圖形開發(fā)軟件WindML,但該軟件在具體實(shí)操時(shí),不能有效利用圖形界面實(shí)現(xiàn)操作效率的提升,同時(shí)利用該軟件處理的圖像界面顯示,效果單一模糊,最大的短板是該軟件在面臨諸如圖像的動畫、反走樣等問題時(shí)無法提供解決渠道[2]。因此,考慮選擇系統(tǒng)顯卡自帶的OpenGL三維圖形軟件包,該軟件最大的特點(diǎn)是通過建立函數(shù)關(guān)系進(jìn)行操作,函數(shù)的設(shè)立、建構(gòu)都依照實(shí)用簡單的模型,利用OpenGL提供的函數(shù)功能,只需建構(gòu)、設(shè)置一整套自己需要、簡潔清晰的渲染函數(shù)就能完成圖形選取、設(shè)計(jì)、規(guī)劃,這樣直接通過操作簡單函數(shù)來進(jìn)行圖形制作,針對性、時(shí)效性強(qiáng),所設(shè)計(jì)的圖形更具直觀性,同時(shí)OpenGL可以很好地解決諸如圖形的動畫、反走樣等顯示效果方面出現(xiàn)的難題[3?4]。

        OpenGL是SGI公司開發(fā)的具有廣泛運(yùn)用性的一種軟件接口,它的最大特點(diǎn)是可以移植,并且具備獨(dú)立性,不受窗口操作系統(tǒng)和硬件環(huán)境的制約,是一種用于實(shí)時(shí)3D圖形的標(biāo)準(zhǔn)范例。OpenGL的圖像顯示是基于硬件(通常是顯卡)實(shí)現(xiàn)的,在OpenGL硬件運(yùn)轉(zhuǎn)情況下,調(diào)動OpenGL API 傳送給硬件驅(qū)動程序,然后與圖形顯示硬件直接交互,如圖1所示。由于軟件技術(shù)的深度開發(fā),OpenGL在3D圖形加速卡方面的發(fā)展日益加快,使得圖形處理更為簡潔、實(shí)用、高效[5]。

        1 軟件設(shè)計(jì)

        OpenGL提供glDrawPixels函數(shù)繪制像素貼圖。在操作環(huán)節(jié)它利用glRasterPos定義當(dāng)前光柵位置的左下角,然后以glPixelStore操控像素貼圖的格式。在雷達(dá)圖像中,像素格式通常為灰度圖,含256級亮度,每個(gè)字節(jié)對應(yīng)一個(gè)像素的信息。在glRasterPos函數(shù)設(shè)置好當(dāng)前光柵位置后,隨即可利用glDrawPixels函數(shù)將圖像從內(nèi)存復(fù)制到幀緩沖區(qū)內(nèi)。

        OpenGL支持雙緩存技術(shù),在顯示前臺緩存圖像的同時(shí),后臺緩存繪制第二幅圖像。當(dāng)后臺繪制完成后,后臺緩存中的圖像就顯示出來,此時(shí)原來的前臺緩存開始繪制第3幅圖像,如此循環(huán)往復(fù),使屏幕上的畫面看起來是連續(xù)的。

        另外,還要考慮融合技術(shù)。這是一種最為基本的圖像處理技術(shù),應(yīng)用面廣泛,利用這種技術(shù)可以顯示飛參等信息。在圖像處理過程中,融合的方式多種多樣,最主要的方式是使用Alpha通道。在程序中,使用Alpha值可以直接完成字體位圖與圖像信息的融合透明處理[6]。

        1.1 圖像繪制

        繪制像素貼圖OpenGL函數(shù)及其參數(shù)如下:

        (1) 描述位圖數(shù)據(jù)的存儲格式。

        這里要解決好如下兩個(gè)問題:如何使用glReadPixels函數(shù)保存像素;如何為glDrawPixels函數(shù)讀取像素。在程序中主要是利用該函數(shù)設(shè)置從內(nèi)存中讀取像素的格式來解決上述問題。

        Void glPixelStorei(Glenum pname,Glint param)

        其中pname為要設(shè)置的參數(shù);param是參數(shù)值。

        控制從內(nèi)存中讀取像素的pname參數(shù)取值為:

        GL_UNPACK_SWAP_BYTES

        GL_UNPACK_LSB_FIRST

        GL_UNPACK_ROW_LENGTH

        GL_UNPACK_SKIP_ROWS

        GL_UNPACK_SKIP_PIXEL

        GL_UNPACK_ALIGMENT

        程序參數(shù)取GL_UNPACK_ALIGMENT值為1,表示圖像上每一行掃描的對齊方式是按照1個(gè)字節(jié)進(jìn)行掃描對齊的。

        (2) 設(shè)置當(dāng)前光柵位置,確定圖像的起始位置

        Void glRasterPos2i(GLint x,GLint y)

        其中,x表示圖像起始左下角的水平坐標(biāo);y表示圖像起始左下角的垂直坐標(biāo)。x,y的數(shù)據(jù)類型也可以是浮點(diǎn)數(shù),相應(yīng)的函數(shù)名稱是glRasterPos2f(GLfloat x,GLfloat y)。

        (3) 從內(nèi)存將像素?cái)?shù)據(jù)復(fù)制到幀緩沖區(qū)光柵位置

        Void glDrawPixels(GLsizei width,GLsizei height,GLenum format,GLenum type,const GLvoid* pixels)

        其中:width表示像素計(jì)的圖像寬度;height表示像素計(jì)的圖像高度;format表示繪制的像素的顏色空間;type是指繪制的像素類型;pixels是圖像的像素?cái)?shù)據(jù)的指針。雷達(dá)圖像是灰度級數(shù)據(jù),因此設(shè)置type參數(shù)為GL_UNSIGNED_BYTE,format參數(shù)設(shè)為 GL_LUMINANCE。

        1.2 圖像平滑滾動的實(shí)現(xiàn)

        OpenGL支持雙緩沖系統(tǒng),但在實(shí)際中OpenGL函數(shù)不會用來交換前臺緩沖區(qū)和后臺緩沖區(qū)。但是令人欣慰的是,每個(gè)OpenGL支持的窗口系統(tǒng)都可以通過設(shè)置一個(gè)函數(shù)調(diào)用來完成前后緩沖區(qū)之間的交換。在Windows中,函數(shù)是SwapBuffer。在程序中,函數(shù)是glxSwapBuffer。

        OpenGL用雙緩存技術(shù)來完成動畫制作。程序默認(rèn)幀存為兩個(gè)視頻緩存,在任意時(shí)刻,兩者中只有一個(gè)內(nèi)容能被顯示出來。運(yùn)行原理是, 當(dāng)前可見視頻緩存稱為前臺視頻緩存,不可見的(正在畫)的視頻緩存稱為后臺視頻緩存。當(dāng)后臺視頻緩存中的內(nèi)容被要求顯示時(shí),OpenGL就將它拷貝至前臺視頻緩存。在操作中顯示硬件通過讀取可見視頻緩存中的內(nèi)容,把相關(guān)結(jié)果顯示在屏幕上。OpenGL在雙緩存模式下,位平面被默認(rèn)切分為前臺和后臺位平面。通過繪制函數(shù)操作的圖像首先被寫向后臺位平面,這就要求,在描畫物體之前,首先必須把幀存設(shè)置成正確的組態(tài),當(dāng)后臺出現(xiàn)完整的畫之后,就調(diào)用glxSwapBuffer函數(shù),使其稱為可見視頻緩存[7]。glxSwapBuffer函數(shù)的工作過程如圖2所示。

        1.3 生成位圖字符

        OpenGL直接用于處理單色位圖。這種儲存形式單一、簡潔,如果存儲位為1則用指定的顏色填充該位,如果存儲位為0,則用底色填充該位。如果按每行8位掃描,則按以下數(shù)組表示的位所生成的位圖是字母B,如圖3所示。

        以同樣的方法,可以表示A~Z的字母,0~9的數(shù)字。要輸出位圖,需要調(diào)用glBitmap函數(shù)把位圖按指定的位置顯示在屏幕上。glBitmap原型為:

        Void glBitmap(GLsizei width,GLsizei height,GLfloat xorig, GLfloat yorig,GLfloat xmove,GLfloat ymove,const GLubyte* bitmap)

        其中,width指定位圖的寬,height指定位圖的高,兩者均以像素為單位;(xorig,yorig)為位圖原點(diǎn)的坐標(biāo);(xmove,ymove)為位圖基于當(dāng)前光柵位置的偏移量;bitmap為存儲位圖的地址。

        1.4 融合處理

        OpenGL融合技術(shù)可以把源顏色與目的顏色進(jìn)行某種方式的融合,通過融合組合成為目標(biāo)顏色,從而生產(chǎn)出透明或半透明的特殊效果。顏色的比例融合通過Alpha進(jìn)行操作,即RGBA顏色模型中的A。融合操作涉及兩個(gè)因子,一個(gè)是源因子,另一個(gè)是目的因子。在進(jìn)行融合計(jì)算之前,要完成兩個(gè)因子的融合,完成此功能的函數(shù)是glBlendFunc,原型為:

        void glBlendFunc(GLenum sfactor,GLenum dfactor)

        參數(shù)sfactor說明怎樣計(jì)算源因子,參數(shù)dfactor說明怎樣計(jì)算目標(biāo)因子。

        設(shè)源融合因子為[(Sr,Sg,Sb,Sa),]目的因子為[(Dr,Dg,][Db,Da),]則融合后的顏色為:[(RsSr+RdDr,GsSg+GdDg,BsSb+][BdDb,AsSa+AdDa),]顏色的各個(gè)分量最后自動進(jìn)行歸一化處理。

        融合作為一種特殊的功能,必須進(jìn)行啟動和關(guān)閉聲明:

        glEnable(GL_BLEND);

        glDisable(GL_BLEND);

        2 測試結(jié)果

        顯卡輸出的雷達(dá)圖像視頻經(jīng)視頻采集卡接收處理后,實(shí)現(xiàn)圖像的正常顯示,如圖4所示。

        在顯卡顯示噪聲的同時(shí),會疊加載機(jī)信息。

        3 結(jié) 語

        本文通過基于OpenGL在實(shí)際操作中的圖像顯示方法(一方面顯示原始圖像信息,同時(shí)顯示自數(shù)據(jù)處理系統(tǒng)的二次信息),在程式命令的操作下,顯示系統(tǒng)會進(jìn)行顯示模式轉(zhuǎn)換,如A型、B型和P型顯示器,顯示切換功能會不停轉(zhuǎn)換,顯示更加靈活,實(shí)用性較強(qiáng)。

        參考文獻(xiàn)

        [1] 胡延蘇,南秦博,高昂,等.VxWorks中任務(wù)恢復(fù)機(jī)制的設(shè)計(jì)與實(shí)現(xiàn)[J].空軍工程大學(xué)學(xué)報(bào):自然科學(xué)版,2013(5):48?52.

        [2] 鄭元珠.基于VxWorks操作系統(tǒng)的雷達(dá)顯示軟件屏幕截圖技術(shù)研究[J].艦船電子對抗,2010(2):116?120.

        [3] 李軍.OpenGL編程指南[M].北京:機(jī)械工業(yè)出版社,2009.

        [4] 和克智.OpenGL 編程技術(shù)詳解[M].北京:化學(xué)工業(yè)出版社,2010.

        [5] 張琪.OpenGL超級寶典[M].北京:人民郵電出版社,2010.

        [6] 馬建萍,嚴(yán)恭敏,王保衛(wèi).OpenGL在雷達(dá)圖像實(shí)時(shí)顯示中的應(yīng)用[J].航空計(jì)算技術(shù),2005,35(4):72?74.

        [7] 柳佳佳,欒曉巖,邊淑莉.基于OpenGL的二維矢量地圖可視化技術(shù)研究[J].測繪科學(xué),2013(5):88?90.

        国产精品网站夜色| 亚洲国产精品18久久久久久| 久久精品中文字幕| 日韩人妻无码精品久久免费一 | 国产成年人毛片在线99| 亚洲国产日韩欧美综合a| 精品麻豆国产色欲色欲色欲www | 亚洲最近中文字幕在线| 成人免费a级毛片| 精品久久久久久777米琪桃花| 亚洲一区二区久久青草| 日本高清免费播放一区二区| 一区二区三区四区在线观看日本| 色综合久久中文娱乐网| 一本色道久久综合亚洲精品不卡| 国产日韩精品一区二区在线观看播放| 亚洲国产精品午夜一区| 日本免费观看视频一区二区| 一本色道久久88加勒比—综合| a级大胆欧美人体大胆666| 无码天堂亚洲国产av麻豆| 亚洲天堂av另类在线播放| 那有一级内射黄片可以免费看| 日本少妇浓毛bbwbbwbbw| 五月婷婷俺也去开心| 国产自产av一区二区三区性色| 国产精品亚洲av无人区二区| 中文字幕乱码在线人妻| 色综合久久精品亚洲国产| 艳妇乳肉豪妇荡乳av无码福利| 色婷婷亚洲十月十月色天| 国语对白精品在线观看| 国产午夜手机精彩视频| 18禁无遮挡羞羞污污污污网站| 丰满人妻AV无码一区二区三区| 精品亚洲在线一区二区| 国产精品免费观看调教网| 久久99精品国产麻豆| 国产精品伦人视频免费看| 在线观看视频亚洲一区二区三区| 久久免费看黄a级毛片|