• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于IDL直接圖形法的圖像顯示

      2017-04-09 14:01:11李琳琳
      環(huán)球人文地理·評論版 2017年1期
      關(guān)鍵詞:編程語言代碼組件

      李琳琳

      摘要:本文發(fā)揮IDL強大的圖形處理功能,將圖像文件,利用IDL編程語言,顯示在窗口中,并通過指針傳遞,將文本路徑實時更新,進而得到一個完整的獨立式的圖形數(shù)據(jù)讀取、顯示、參數(shù)傳遞等程序。

      關(guān)鍵詞:IDL語言;圖形可視化

      引言:IDL全稱交互是數(shù)據(jù)語言。是一個擁有強大的數(shù)據(jù)處理能力,與多種編程語言交互式編程,兼容ODBC數(shù)據(jù)庫和跨平臺應(yīng)用開發(fā)的一門編程語言。由于其功能強大,簡單易學(xué),使其應(yīng)用領(lǐng)域頗為廣泛。例如,美國國家航空航天局(NASA)在太空飛船中的使用IDL研究紫外線放射現(xiàn)象;生物專家利用IDL開發(fā)用于觀察人類大腦的核磁共振圖的MRIViewer。還包括大家所熟知的ENVI,也是利用IDL編寫開發(fā)。

      1 系統(tǒng)開發(fā)環(huán)境

      IDL的圖像顯示可以基于兩種圖像顯示方法實現(xiàn)。一種是直接利用用戶設(shè)定的數(shù)據(jù)進行顯示,這種方法稱為直接圖形法。另一種是利用對象引導(dǎo)程序,即將數(shù)據(jù)顯示在創(chuàng)建顯示窗口的對象窗口里。對于一個程序而言,界面與事件處理則是基礎(chǔ)組成部分。

      界面與事件處理一般步驟:

      (1)需求分析,列出需要的功能模塊;

      (2)設(shè)計流程圖;

      (3)設(shè)計邏輯圖;

      (4)事件功能的實現(xiàn);

      (5)編寫功能函數(shù);

      (6)代碼集成,成果顯示。

      2 界面設(shè)計

      整個程序的界面組成是由的widget_base()組件作為界面容器,在該容器中添加了widget_button()(按鈕組件)、widget_draw()(顯示組件)以及widget_text()(文本組件)等構(gòu)成。

      利用widget_base()創(chuàng)建一個容器組件,即程序顯示框架。在file按鈕下,創(chuàng)建文件打開與關(guān)閉按鈕,通過xsize、ysize設(shè)置其大小,利用uname實現(xiàn)組件功能。其代碼如下:

      tlb=widget_base(mbar=mbar,/column,/frame)

      wfile=widget_button(mbar,value='file',xsize=50,ysize=50)

      wexit=widget_button(wfile,value='exit',uname='Exit')

      tOpen=widget_button(TBbase,value='open.bmp',/bitmap,$

      uname='Open',xsize=40,ysize=40,xoffset=200,yoffset=150)

      為了讓程序界面設(shè)計更加友好,因此在程序界面底部添加程序運行版本信息組件。

      text=widget_text(tlb,xsize=.6,ysize=.5,value='IDL 8.0 LBV BandMath ')

      3 TIFF格式數(shù)據(jù)的圖像顯示

      由于遙感影像來源廣泛,因此,數(shù)據(jù)格式也大不相同。例如,ASCII碼(文本)文件需要利用READF函數(shù)進行讀??;JPEG格式文件需要用READ_JPEG()函數(shù)讀??;使用READ_IMAGE讀取BMP圖像。本文主要針對TIFF格式數(shù)據(jù)進行讀取與顯示。

      1)數(shù)據(jù)讀取。TM數(shù)據(jù)擁有多波段數(shù)據(jù)信息,為了有目的性的選讀文件,利用n_elements()函數(shù),對輸入的文件進行判斷。對于不符合要求的文件,實施警告處理并要求重新篩選。本文采用簡單的兩組TIFF影像數(shù)據(jù)進行疊加顯示。代碼如下:

      file=dialog_pickfile(title='pick file',filter='*.tif')

      n=n_elements(file)

      if n eq '2' then begin

      aa=file[0]

      a=read_tiff(aa)

      bb=file[1]

      b=read_tiff(bb)

      endif else begin

      war=dialog_message('Erro',/error)

      return

      endelse

      2)數(shù)據(jù)疊加顯示。衛(wèi)星數(shù)據(jù)是按照行進行存儲的,與IDL數(shù)據(jù)掃描的原理一樣。因此,可以利用數(shù)組方法,將得到的兩幅影像進行疊加運算。代碼如下:

      image_result=[a+b]

      tv,image_result

      4 代碼的集成及圖像顯示

      兩個事件之間利用指針傳遞,從而實現(xiàn)界面與事件處理之間的關(guān)系。首先,對文件讀取路徑實施初始化,然后對文件讀取路徑進行實時更新,并顯示在程序界面上。

      實現(xiàn)主要代碼如下:

      Pro A

      pState={WINID:WinID,xtext:xtext,$

      curpath:'D: '}

      widget_control,tlb,set_uvalue=ptr_new(pState)

      END

      Pro B

      widget_control,ev.top,get_uvalue=pstate

      END

      如果指針傳遞成功,疊加后的數(shù)據(jù)影像便可以完整顯示在創(chuàng)建的顯示區(qū)域了。

      參考文獻

      [1]董彥卿 IDL程序設(shè)計——數(shù)據(jù)可視化與ENVI二次開發(fā)。高等教育出版社

      [2]韓培友 IDL可視化分析與應(yīng)用。西北工業(yè)大學(xué)出版社

      [3]蓋迎春 IDL 在青藏鐵路地理信息系統(tǒng)中的應(yīng)用研究,2007(6),冰川凍土

      猜你喜歡
      編程語言代碼組件
      無人機智能巡檢在光伏電站組件診斷中的應(yīng)用
      能源工程(2022年2期)2022-05-23 13:51:50
      壓力-體積轉(zhuǎn)換在CFC編程語言中的實現(xiàn)解析
      新型碎邊剪刀盤組件
      重型機械(2020年2期)2020-07-24 08:16:16
      U盾外殼組件注塑模具設(shè)計
      Java編程語言的特點與應(yīng)用
      創(chuàng)世代碼
      動漫星空(2018年11期)2018-10-26 02:24:02
      創(chuàng)世代碼
      動漫星空(2018年2期)2018-10-26 02:11:00
      創(chuàng)世代碼
      動漫星空(2018年9期)2018-10-26 01:16:48
      創(chuàng)世代碼
      動漫星空(2018年5期)2018-10-26 01:15:02
      淺談不同編程語言對計算機軟件開發(fā)的影響
      電子制作(2018年1期)2018-04-04 01:48:36
      红原县| 广平县| 仁怀市| 寻乌县| 沐川县| 哈尔滨市| 芒康县| 光山县| 老河口市| 固阳县| 浦县| 白河县| 金坛市| 兴文县| 大港区| 太和县| 遵义市| 吉安市| 神木县| 湘西| 临桂县| 仙桃市| 龙陵县| 云林县| 内丘县| 行唐县| 临海市| 珠海市| 景洪市| 山阳县| 靖宇县| 扎赉特旗| 农安县| 崇文区| 静海县| 双鸭山市| 雅江县| 南昌市| 库伦旗| 洛浦县| 隆安县|