【IDL程式碼庫】Colibri開源軟體包
Colibri介紹
Colibri是一個基於ENVI/IDL平臺實現的一個開源軟體包。裡邊包含了多種多樣的演算法和程式。
程式碼是使用不同子資料夾來儲存的。每一個資料夾內都含有一些原始碼檔案。在根目錄下的Reference Guide.html檔案中包含了所有物件及函式的功能介紹、呼叫方法等,類似於IDL幫助。
- Application – General:含有一些通用功能,比如影象分類、建立合成影象、DSM轉換為DTM等功能
- Application – Toolbox:包含兩個GUI應用程式,功能分別為影象分類後處理(可以新增類別、修改類別等)、高光譜資料處理(光譜平滑,可進行批處理)。
- Classes
- Common:此資料夾包含了一些影象處理函式。如影象分類、SVM、RMSE計算等。
- 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
- 支援將編輯後結果儲存出來。
圖:分類結果編輯工具
圖:新增水體類別,並將繪製區域由農田轉化為水體
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檔案以及描述文字。