摘 要: 基于IDL對象圖形法實現(xiàn)了遙感圖像的漫游和連續(xù)多級縮放,具有運行速度快,穩(wěn)定性好等特點。漫游解決了大的遙感圖像不能在一般窗口完整顯示的問題, 方便用戶快速顯示瀏覽大的遙感圖像。圖像的縮放實現(xiàn)了對圖像細節(jié)的放大和縮小,改善了視覺效果,提高了圖像處理的效率。
關(guān)鍵詞: IDL; 對象圖形法; 圖像漫游; 圖像縮放
遙感圖像按一定比例尺客觀真實地記錄和反映地表物體的電磁輻射的強弱信息,是遙感探測所獲得的遙感信息資料的一種表現(xiàn)形式[1]。在遙感技術(shù)的研究中,對遙感圖像的分析與研究在地質(zhì)勘探、城市規(guī)劃、氣象科學、海洋利用和環(huán)境保護等方面都有十分重要的意義。隨著傳感器技術(shù)和計算機科學技術(shù)的快速發(fā)展,獲取的遙感圖像的地面分辨率越來越高,所包含的數(shù)據(jù)量越來越大,獲取的遙感圖像也越來越大[2]。如何快速顯示和瀏覽大的遙感圖像,獲得圖像中的細節(jié)信息就成為遙感圖像處理與分析的一個重要環(huán)節(jié)。交互式數(shù)據(jù)語言IDL(Interactive Data Language)是Research Systems公司(現(xiàn)為ITT Visual Information Solutions公司)推出的致力于科學數(shù)據(jù)的可視化和分析語言。它功能強大、簡單易學、編程效率高,很少的幾行代碼就能實現(xiàn)其他語言很難實現(xiàn)的功能[3]。本文有效利用IDL語言強大的可視化、快速的數(shù)據(jù)處理能力及對象圖像法靈活方便的構(gòu)建圖形圖像等特點,實現(xiàn)了遙感圖像的漫游和縮放功能,具有處理速度快、圖像移動連續(xù)以及程序可移植性強等優(yōu)點。
1 漫游技術(shù)介紹
遙感圖像經(jīng)常是大畫面圖像,而一般的圖像顯示窗口較小,因此圖像不能完整顯示在窗口中,給圖像編輯帶來困難[4]。
圖像漫游是在圖像顯示窗口中上下左右移動,圖像的一側(cè)逐漸出現(xiàn),另一側(cè)逐漸消失??梢园颜膱D像定義為一個邏輯屏幕,而把顯示屏幕定義為一個物理屏幕,其關(guān)系如圖1所示。
可以看出,物理屏幕只是邏輯屏幕的一個子集,要瀏覽整個邏輯屏幕中的內(nèi)容,只需要移動物理屏幕在邏輯屏幕中的起始位置即可,這就是漫游技術(shù)。在交互式系統(tǒng)中使用光標控制物理屏幕起始位置[5]。
2 圖像的放大縮小技術(shù)概述
在圖像瀏覽過程中,對瀏覽區(qū)域進行放大或者縮小是一種基本的操作。所謂圖像縮放是指改變圖像的分辨率??s小圖像的主要目的是使得圖像符合顯示區(qū)域的大小并生成對應圖像的縮略圖。放大圖像的主要目的是通過放大原圖像從而更清楚地看到圖像上的某些細節(jié)信息。尤其對高精度的大圖像來說,一些細節(jié)信息必須要通過放大操作來觀察。圖像的這種處理手法在圖像顯示、傳輸(通信)、圖像分析、動畫制作和電影合成等方面有著相當廣的應用。但是對圖像的縮放操作并不能獲得更多關(guān)于該圖像的信息,因此圖像的質(zhì)量將不可避免地受到影響。
本文利用IDL語言編寫的程序?qū)崿F(xiàn)了圖像的連續(xù)多級放大和連續(xù)多級縮小,每一級的放大和縮小系數(shù)可以根據(jù)用戶需要任意設(shè)定。
3 IDL的應用
IDL作為語法簡單地面向矩陣運算的計算機語言,提供了與多種語言的標準接口工具和大量功能豐富的命令、函數(shù)和程序模塊,使得數(shù)據(jù)分析和可視化表達更加簡潔、靈活。IDL已經(jīng)廣泛應用在信息處理、空間科學、氣象、資源環(huán)境中數(shù)字圖像處理等領(lǐng)域[6]。
3.1 IDL的對象圖形法
IDL語言有兩套完全獨立的圖形體系:直接圖形法和對象圖形法[7]。直接圖形法是依靠當前顯示設(shè)備快速顯示的圖形的可視化模式,創(chuàng)建在圖形設(shè)備上的內(nèi)容將不能再更改和重復利用,適用于命令行操作。對象圖形法不直接依賴于用戶使用的圖形設(shè)備,可以直接運行于各種計算機系統(tǒng)中,而且不需要進行圖形設(shè)備的設(shè)置,同時還可以重復利用,因此更加適合開發(fā)應用程序。
IDL的對象圖形法可以形象地理解為“壘積木”,構(gòu)建場景就是要將不同的“積木”按照一定的規(guī)則堆起來。本文利用IDL的對象圖形法建立了視圖對象和窗口對象等,將其按照層次關(guān)系“壘”起來,最后把最終的場景再在窗口對象中顯示。IDL對象圖形系統(tǒng)的組成結(jié)構(gòu)如圖2所示。
3.2 IDL的鼠標響應事件
在用IDL語言編寫漫游和縮放功能的過程中用到了大量的發(fā)生在繪圖DRAW組件中的鼠標響應事件,因此在這里簡單介紹一下。IDL的圖形窗口中,每發(fā)生一個動作都會產(chǎn)生事件,每個事件都會返回一個事件結(jié)構(gòu),所有的事件都是要靠這個結(jié)構(gòu)來處理的。
事件結(jié)構(gòu)是指組件的事件所包含的一組特定信息的集合。事件結(jié)構(gòu)包含了產(chǎn)生事件的相應組件的相關(guān)信息。每個事件都產(chǎn)生于其自身的、特定的事件結(jié)構(gòu)中,然后被發(fā)送到事件處理模塊。
事件結(jié)構(gòu)與一般結(jié)構(gòu)的區(qū)別是事件結(jié)構(gòu)均有ID、Top和Handler 3個公共字段,這3個字段都是長整型的變量。ID是事件過程中產(chǎn)生事件組件的唯一標識;Top是層次結(jié)構(gòu)中最頂級base的標識;Handler是與組件相關(guān)聯(lián)的組件事件處理程序的標識。事件產(chǎn)生的事件結(jié)構(gòu)都要發(fā)送到事件處理程序中,每個事件處理程序都與某一個組件相關(guān)聯(lián)[8]。
DRAW組件的事件結(jié)構(gòu)為:
{WIDGET_DRAW,ID:0L, TOP:0L, Handler:0L ,Type:0,X:0,Y:0,Press:0,Release:0,Clicks:0}
字段Type用于設(shè)置時間的類型,其可能的值有:鼠標按下(0)、鼠標松開(1)、鼠標移動(2)、視點滾動(3)和顯示(4)。上述所有事件都必須顯示地指定,否則相應的事件是不會產(chǎn)生的。字段X和Y給出了事件發(fā)生時的設(shè)備或屏幕坐標,繪圖組件的左下角為坐標原點。字段Press和Release,當鼠標被按下或釋放時,它們的值就分別存在了。其中,1表示鼠標左鍵,2表示鼠標中鍵,4表示鼠標右鍵。如果產(chǎn)生鼠標移動事件,那么Press和Release都被設(shè)置為0。當鼠標單擊時,字段Clicks返回1,雙擊時返回2。
本文所編寫的圖像漫游和縮放流程圖分別如圖3和圖4所示。
4 性能分析及效果
通常,功能實現(xiàn)時間的長短直接決定了功能實現(xiàn)的好壞。對本文而言,程序執(zhí)行速度的快慢與圖像的大小有很大的關(guān)系。圖像越小,程序執(zhí)行的速度越快,反應越靈敏。本文以2 064像素×2 534像素大小的圖像為例,通過在程序中添加時間函數(shù)經(jīng)過反復測試得到以下結(jié)果:圖像漫游所花費的時間是0.156 s左右,圖像進行一級放大和縮小的時間是0.171 s左右,當進行多級放大時,時間會有所延長。由此可知,本文實現(xiàn)的圖像的漫游和縮放功能執(zhí)行速度快,圖像能迅速跟隨鼠標移動,給用戶以平滑和連續(xù)的感覺。
4.1 圖像漫游效果
原來顯示在窗口中的圖像及圖像向上、下、左、右漫游(以原圖中間的白色房屋為中心參考點)后的圖像如圖5所示。
4.2 圖像放大效果
圖像的原圖以及放大系數(shù)設(shè)置為1.2時圖像經(jīng)過5級放大后的效果圖、放大系數(shù)設(shè)置為1.5時圖像經(jīng)過5級放大后的效果圖以及經(jīng)過多級放大后的效果圖如圖6所示。圖像還可以繼續(xù)進行放大操作,但從圖6可看出,此時圖像失真較嚴重,研究意義較小。
4.3 圖像縮小效果
圖像的原圖以及縮小系數(shù)為0.8時經(jīng)過3級縮小的圖像、縮小系數(shù)為0.5時經(jīng)過3級縮小以后的圖像和經(jīng)過多級縮小以后的圖像如圖7所示。觀察圖像縮小效果圖可發(fā)現(xiàn),當縮小到一定程度時,圖像已經(jīng)完全顯示到屏幕上,此時繼續(xù)縮小圖像則不會有較大變化。
本文首次嘗試利用IDL語言對象圖形法實現(xiàn)遙感圖像的漫游和縮放,并給出了處理結(jié)果。結(jié)果表明,該方法實現(xiàn)了對大的遙感圖像的快速瀏覽和對圖像的任意多級縮放,具有運行速度快、連續(xù)性好等特點,提高了用戶圖像處理的效率。
參考文獻
[1] 王一達,沈熙玲,謝炯.遙感圖像分類方法綜述[J].遙感信息,2006(5):67-71.
[2] 張宏偉,童恒建,左博新,等.基于GDAL大于2G遙感圖像的快速瀏覽[J].計算機工程與應用,2012,48(13):159-162.
[3] 董彥卿. IDL程序設(shè)計[M].北京:高等教育出版社,2012.
[4] 王洪慶,張焱.NDPC-386圖像漫游技術(shù)[J].微計算機應用,1993,14(6):1-6.
[5] 李軍.通用的圖形圖像漫游技術(shù)[J].電腦編程技巧與維護,1996(6):53-60.
[6] 韓培友. IDL可視化分析與應用:可視化交互數(shù)據(jù)語言[M].西安:西北工業(yè)大學出版社,2006.
[7] 閆殿武.IDL可視化工具入門與提高[M].北京:機械工業(yè)出版社,2003.
[8] LIAM E G. Practical IDL programming[M]. Morgan Kauf-mann Publishers Inc., 2001.