您的位置: 旅游網 > 圖庫 >> 明星寫真

    實現衛星照片三維顯示

    發布時間:2021-10-28 05:25:02

    摘要: 本文介紹了VC++與Matlab混合編程的一般實現方法,并在此基礎之上實現了對遙感衛星獲取得到的二維大地影像的三維效果顯示。

    關鍵詞: VC++;Matlab;M文件;遙感影象;三維顯示

    引言

    隨著科技的進步,遙感衛星早已在眾多領域得到廣泛應用,如資源普查、災害預警和土地普查等。由于現有的遙感探測設備只有紅外行掃儀、多光譜CCD相機或SAR雷達等幾大類,因此從衛星得到的原始圖象只可能是二維圖象,而在某些特殊領域需要根據三維影像才能做出更進一步的信息抽取,這就需要通過后處理的手段根據原始二維遙感影像虛擬出其三維效果。

    具體的技術解決途徑有很多,比如在VC++下可以通過直接對OpenGL或Direct3D進行編程實現,但由于此類應用需要大量的科學計算,使用具有強大的矩陣運算、數據處理和圖形顯示功能的Matlab進行開發比較合適,其輸出結果可視化,編程效率極高,極少的代碼即可實現復雜的運行,然而其邊解釋邊執行,運算效率較低,實現相同功能的代碼跟其他編程平臺相比運行時間相對較長,且不適合作為通用的編程平臺。因此,為系統整體效率考慮,采取具有很高編程效率的通用編程平臺VC++與Matlab混合編程的方式將更有助于發揮Matlab和VC的各自優勢。

    VC++與Matlab幾種常用的集成方法

    Matlab與VC++混合編程的具體方式有多種,根據Matlab是否運行可大致分為兩類:Matlab在后臺運行和可以脫離Matlab環境運行。Matlab 5.0以后版本均自帶C/C++編譯器,可將其程序文件(M文件)轉換為C-MEX或C/C++程序。

    第一種方式是Matlab引擎采用客戶機/服務器的計算方式,通過Windows的ActivcX通道和Matlab接口。在具體的應用中,VC的程序作為前端客戶機,通過調用Matlab引擎在后臺與Matlab服務器建立連接,實現動態通信。這種方法實現較為簡單,不要求連接整個Matlab,只需要嵌入必要的Matlab引擎庫,可大大地節省系統資源,但這種Matlab在后臺運行,運行效率低下。

    第二種方式是使用Mathtools公司推出的Matlab集成編譯開發平臺Mideva,它提供了對M文件的解釋執行和開發環境支持。經過簡單設置后Mideva可以將M源文件轉換為C/C++,然后添加到VC++工程中。 也可以先利用Mideva直接生成EXE文件(方法是啟動Mideva,在菜單\"File-Compile to exe\"中, 選出需要轉換的M文件),然后在VC++中通過shellexec()或winexec()等外部函數完成Shell調用。這種方法簡單方便,但運行時出現一個控制臺窗口,而且由于VC和Matlab之間不能交互,通用性差。

    第三種方式是通過Mablat編譯器將其m文件轉換成為C/C++代碼文件并生成必要的dll庫后再通過VC++編譯器生成可獨立執行的應用程序,這種方式可以直接調用其中的庫函數,生成并發布不必依賴Matlab的可執行文件。在建立好函數m文件(不能是腳本m文件)后,用mcc命令將其轉換為C++代碼,命令行參數如下(假定m文件為test.m):

    mcc -t -L Cpp test.m

    然后繼續生成動態鏈接庫函數:

    mcc -t -W lib:test2 -T link:lib test.m

    需要注意的是,\"lib:\"后跟生成的庫文件名不能和原m文件名相同(此處為test2)而且此處只能生成C語言方式的動態鏈接庫。該編譯命令共生成9個文件,其中b和l是可以在C/C++應用程序中調用的動態鏈接庫文件。

    最后一種方式是通過Matlab Add-in實現Matlab與VC的混合編程,這是最方便的也是本文下面將要使用的集成方式。在Matlab 6.0以后版本對其編譯器作了較大的改進,其支持更多的數據類型,更強的優化功能,更為重要的是其Matlab Add-in提供了一個Matlab和VC直接集成的途徑。它具有一些新的特征:快速集成M文件到C++工程中,創建獨立的 C/C++應用程序或C MEX DLL;通過M文件創建共享庫或MEX文件;內含Visual Matrix Viewer,調試過程中可以查看矩陣變量的值; 直接修改M源文件而不是修改生成的C/C++文件;方便快捷地打包應用程序等。

    由行業主管部門統一外觀標識、規范管理。 下面給出Matlab Add-in的具體安裝步驟:

    1. 啟動Matlab,運行\"mex-setup\",按照菜單提示選取MSVC。它將配置MEX使用VC為默認的編譯器(創建C-MEX文件必需),并安裝Matlab Add-in所需文件到VC目錄。

    2. 在Matlab環境下運行\"mbuild-setup\", 按提示選取MSVC。它將配置使用VC為默認的編譯器(創建獨立應用程序必需),并安裝Matlab Add-in所需的Matlab Compiler和C/C++數學庫文件到VC目錄。

    3. 在Matlab環境下運行\"cd(prefdir)\"和\"mccsavepath\"。它將保存當前Matlab路徑到mccpath文件中,這是因為Matlab Add-in脫離Matlab運行,否則它無從知道Matlab路徑。

    4. 啟動VC環境,從菜單\"Tools - Customize\"選擇\"Add-ins and Macro Files\"選項卡,選中\"Matlab Add-in\", 點擊\"Close\"。VC工具欄出現Matlab Add-in圖標,完成Matlab Add-in的配置,以后每次啟動VC將自動加載Matlab Add-in。

    5. 配置Windows系統。如果是Windows 95/98系統,找到s, 添加一行:shell= c:\\ /e:32768 /p;如果是Windows ME則需設置e的屬性Memory選項卡的Initial Environment值為4096。

    長春好醫院男科
    上海哪家婦科醫院比較正規
    成都早泄治療多少錢
    猜你會喜歡的
    猜你會喜歡的
    主站蜘蛛池模板: 亚洲av无码日韩av无码网站冲| 午夜爽爽爽男女污污污网站| 亚洲欧美乱综合图片区小说区| 1717国产精品久久| 成人无码嫩草影院| 亚洲福利一区二区| 色婷婷亚洲十月十月色天| 天天摸天天碰成人免费视频| 久久精品免视看国产成人| 精品无人区一区二区三区| 国内精品一区二区三区在线观看| 五月婷婷激情网| 美国亚洲成年毛片| 国产日韩欧美亚洲| 中文字幕25页| 波多野结衣mxgs-968| 国产日韩欧美精品一区| aⅴ一区二区三区无卡无码| 日本三级带日本三级带黄国产| 亚洲国产欧美日韩一区二区| 都市激情第一页| 国产精品网站在线观看免费传媒| 久久亚洲精品11p| 电车上强制波多野结衣| 国产欧美日韩专区| 99re6热视频精品免费观看| 成在线人视频免费视频| 亚洲日韩在线中文字幕综合| 精品无人区一区二区三区| 国产偷窥熟女精品视频| 9i9精品国产免费久久| 推油少妇久久99久久99久久| 亚洲AV无码国产精品麻豆天美| 波多野结衣办公室33分钟| 午夜亚洲国产精品福利| 韩国伦理电影我妻子的秘密| 大香伊蕉国产av| 中文字幕不卡在线播放| 日韩欧美一区二区三区| 人妻无码一区二区视频| 黄色三级电影网|