1. 程式人生 > 其它 >【IDL程式碼庫】Colibri開源軟體包

【IDL程式碼庫】Colibri開源軟體包

Colibri介紹

Colibri是一個基於ENVI/IDL平臺實現的一個開源軟體包。裡邊包含了多種多樣的演算法和程式。

程式碼是使用不同子資料夾來儲存的。每一個資料夾內都含有一些原始碼檔案。在根目錄下的Reference Guide.html檔案中包含了所有物件及函式的功能介紹、呼叫方法等,類似於IDL幫助。

  • Application – General:含有一些通用功能,比如影象分類、建立合成影象、DSM轉換為DTM等功能
  • Application – Toolbox:包含兩個GUI應用程式,功能分別為影象分類後處理(可以新增類別、修改類別等)、高光譜資料處理(光譜平滑,可進行批處理)。
  • Classes
    :此資料夾包含了一些通用功能程式碼,主要為自定義類。
  • Common:此資料夾包含了一些影象處理函式。如影象分類、SVMRMSE計算等。
  • Documents:此資料夾包含了一些參考文獻和LOGO等檔案。
  • Examples:包含了一些示例程式碼和示例資料。

圖:Colibri軟體包目錄以及Reference Guide.html檔案內容


使用方法

下載地址:http://sourceforge.net/projects/enviidlcodelibr/

  • 開啟IDL工作臺;
  • 新建工程,輸入工程名(如Colibri);
  • 將下載壓縮包的檔案解壓,拷貝到新建的工程資料夾下;
  • 在工程名上右鍵選擇“構建工程”,主要為了編譯所有PRO
    原始碼檔案。
  • 下面以兩個帶有GUI的工具為例,介紹使用方法。

EOSap_ClassEditor — 分類結果編輯器

因為此功能呼叫了ENVI庫函式和元件,所以需要在IDL控制檯輸入“ENVI”啟動ENVI。找到\Colibri\Applications\Toolbox\Classification\EOSap_ClassEditor\GUI\

EOSap_ClassEditor.pro檔案,編譯執行即可。使用者介面如下圖所示:

可以通過“Input classified image”按鈕匯入分類結果影象(ENVI格式),支援功能如下:

  • 右側可以新增新的類別;
  • 可以通過滑鼠右鍵在三個窗體中繪製多邊形,選中“Change Input Class
    ”和“To New Output Class”之後,點選“箭頭”位置按鈕即可完成類別轉換;
  • 支援將編輯後結果儲存出來。

圖:分類結果編輯工具

圖:新增水體類別,並將繪製區域由農田轉化為水體

EOSap_Smoothing — 高光譜平滑工具

此工具使用方法與分類結果編輯器工具類似,同樣需要先啟動ENVI,然後執行Colibri\Applications\Toolbox\Hyperspectral\EOSap_Smoothing\GUI\

EOSap_Smoothing.pro檔案即可。得到如下圖所示使用者介面。

  • 通過“Select Image File”匯入高光譜資料(ENVI格式);
  • 通過設定“Set Smooth Factor”應用平滑操作,並且支援對不同波段設定不同的係數;
  • 在光譜曲線視窗中可預覽平滑效果(綠色為平滑前的原始光譜,黃色為平滑後結果);
  • 引數設定好之後,切換到 “Apply Smoothing Parameters”選項卡,通過“Input directory”選中輸入資料路徑,在列表中顯示出檔案列表,選中要處理的檔名,設定好輸出路徑,點選Start即可。支援批處理操作。
  • 並且可以將平滑引數儲存在本地,以備下次使用。 

 圖:高光譜平滑工具主介面

圖:應用平滑操作,可進行批處理

圖:平滑前後光譜曲線對比(左:平滑前,右:平滑後)

 

注:上述兩個工具均可在主介面點選“?”按鈕檢視pdf說明文件。

除了這兩個帶有使用者介面的功能外,還有很多其他功能函式,感興趣的可以詳細研究每個PRO檔案以及描述文字。