1. 程式人生 > 其它 >ENVI中處理影象遇到NaN時的處理方法

ENVI中處理影象遇到NaN時的處理方法

當影象中包含 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及以上版本需要安裝擴充套件工具
  • 在彈出的 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