ENVI中處理影象遇到NaN時的處理方法
阿新 • • 發佈:2022-05-30
當影象中包含 NaN 等無效值時,在 ENVI 中進行某些處理可能會遇到類似下方的提示:
此時,可以有幾種方法解決這個問題。
方法1:選擇輸入檔案時掩膜NaN
以 PCA 變化為例,在工具箱雙擊/Transform/PCA Rotation/Forward PCA Rotation New Statistics and Rotate,在彈出的對話方塊中,選中待處理影象,在 Mask Options 下拉列表中,如果 Mask NaNs [All Bands] 和Mask NaNs [Any Band] 兩個選單可用,說明影象中包含NaN像元。
根據需要進行掩膜,一般建議選擇 Mask NaNs [Any Band] ,表示任意一個波段DN值為NaN時即掩膜掉這個像元。然後點選OK,將自動生成掩膜檔案並對輸入檔案進行掩膜,最後彈出PCA面板,設定引數便可正常進行處理了。
這種方法不需要預先對輸入影象進行掩膜處理。
方法2:使用 Apply Mask 工具
可以使用 Apply Mask 工具對輸入影象進行掩膜處理,將 NaN 掩膜為 0 值或其他值。
ENVI 5.4.1 及以上版本移除了這個工具,大家可以在 ENVI App Store 中安裝如下工具,重啟 ENVI 即可使用。
操作方法如下:
-
在工具箱啟動 Apply Mask 工具:
- ENVI 5.4.1以下版本:Toolbox/anagement/Masking/Apply Mask
-
ENVI 5.4.1及以上版本:Toolbox/ENVI Classic/Apply Mask
- 注:ENVI 5.4.1及以上版本需要安裝擴充套件工具
- ENVI 5.4.1以下版本:Toolbox/anagement/Masking/Apply Mask
- 在彈出的 Apply Mask Input File 面板中,在 Mask Options 下拉列表中,如果 Mask NaNs [All Bands] 和Mask NaNs [Any Band] 兩個選單可用,說明影象中包含NaN像元。根據需要進行掩膜,一般建議選擇 Mask NaNs [Any Band],表示任意一個波段DN值為NaN時即掩膜掉這個像元。然後點選 OK 繼續。
- 在彈出的面板中設定 Mask Value,即背景值。如圖中所示,將會把值為 NaN 的像元掩膜為 0 值。然後再對掩膜後圖像進行處理即可。
方法3:利用波段運算工具
請檢視博文“ENVI擴充套件工具:利用波段運算修改NaN方法總結”:https://www.cnblogs.com/enviidl/p/16267337.html