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

    實現衛星照片三維顯示

    發布時間: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。

    長春好醫院男科
    上海哪家婦科醫院比較正規
    成都早泄治療多少錢
    猜你會喜歡的
    猜你會喜歡的
    主站蜘蛛池模板: 国产主播福利一区二区| 女人18片免费视频网站| 国产国语在线播放视频| 《调教办公室》在线观看| 色妞色视频一区二区三区四区| 尤物yw午夜国产精品视频| 亚洲av日韩av不卡在线观看| 男生秘密网站入口| 国产激情一区二区三区| eeuss影院在线观看| 波多野结衣办公室在线| 国产亚洲精品拍拍拍拍拍| 中文字幕无码毛片免费看| 精品三级AV无码一区| 国产精品揄拍100视频| 久久精品一区二区三区中文字幕| 网址你懂的在线观看| 国产视频一区二区| 中国体育生gary飞机| 欧美成人片一区二区三区| 国产天堂在线观看| 一级人做人a爰免费视频| 曰批全过程免费视频网址 | 扒开美妇白臀扒挺进在线视频| 午夜爽爽爽男女免费观看影院 | 国产人妖一区二区| 2021国内精品久久久久精免费| 欧美aaaaa| 国产午夜福利100集发布| 91麻豆精品国产片在线观看| 日韩欧美国产综合| 国产suv精品一区二区6| 99国产精品免费观看视频| 极品丰满美女国模冰莲大尺度| 午夜伦伦影理论片大片| 麻豆久久久9性大片| 天天综合天天做| 九九99re在线视频精品免费| 精品国产不卡一区二区三区| 国内精品哆啪啪| 久久久久女人精品毛片|