PIE SDK最小噪聲變換

 

1.算法功能簡介

    最小噪聲分離變換是用於斷定圖像數據內在的維數(即波段數),分離數據中的噪聲,減小隨後處理中的計算需求量。 MNF 本質上是兩次層疊的主成分變換。第一次變換(基於估計的噪聲協方差矩陣)用於分離和從新調節數據中的噪聲,這步操做使變換後的噪聲數據只有最小的方差且沒有波段間的相關。第二步是對噪聲白化數據( Noise-whitened)的標準主成分變換。爲了進一步進行波譜處理,經過檢查最終特徵值和相關圖像來斷定數據的內在維數。數據空間可被分爲兩部分:一部分與較大特徵值和相對應的特徵圖像相關,其他部分與近似相同的特徵值以及噪聲占主導地位的圖像相關。算法

    用 MNF 變換也能夠從數據中消除噪聲。操做以下:首先進行正向變換,斷定哪些波段包含相關圖像(根據對圖像和特徵值的檢驗),而後進行一個反向MNF 變換,用波譜子集(只包括「好」波段)或在反向變換前平滑噪聲的方法來消除噪聲。ide

    PIE SDK支持算法功能的執行,下面對最小噪聲變換算法功能進行介紹。測試

2.算法功能實現說明

2.1. 實現步驟

第一步spa

算法參數設置3d

第二步code

算法執行orm

第三步視頻

結果顯示blog

2.2 .算法參數

算法名稱教程

最小噪聲正變換

C#算法DLL

PIE.CommonAlgo.dll

C#算法名稱

PIE.CommonAlgo.TransformFuncAlgo

參數結構體

DataTrans_Exchange_Info

參數說明

AlgoType

Int

區分調用的是哪一個算法

0 主成分變換

1 最小噪聲變換

2 傅里葉變換

3 小波變換

4 纓帽變換

bForward

Bool

區分正變換仍是逆變換

true 正;false 逆

m_strInputFile

String

輸入文件

(*.tif;*.tiff;*.bmp;*.img;*.jpg;*.ldf)

m_strStatFile

String

統計文件(輸出最小噪聲正變換元數據信息)

m_strOutputFile

String

輸出文件

*.tif;*.tiff; *.img

m_strFileTypeCode

String

輸出文件類型,默認GTiff

.tif/.tiff——GTiff

.img—————HFA

其餘—————ENVI

2.3. 示例代碼

項目路徑

百度雲盤地址下/PIE示例程序/10.算法調用/圖像處理//ImageProcessing. TransformFuncAlgo

數據路徑

百度雲盤地址下/PIE示例數據/柵格數據/04.World/World.tif

視頻路徑

百度雲盤地址下/PIE視頻教程/10.算法調用/圖像處理//最小噪聲變換算法.avi

示例代碼

 1          //(一)最小噪聲正變換
 2         /// <summary>
 3         ///最小噪聲正變換算法測試,本算法實現了將World.tif進行最小噪聲正變換
 4         /// </summary>
 5         public override void OnClick()
 6         {
 7             #region 一、參數設置
 8             PIE.CommonAlgo.DataTrans_Exchange_Info info = new PIE.CommonAlgo.DataTrans_Exchange_Info();
 9 
10             info.m_strInputFile = @"D:\Data\World.tif";
11             info.m_strOutputFile = @"D:\Data\MinimumNoiseTransformation.tif";          
12             info.AlgoType = 1; //最小噪聲變換         
13             info.bForward = false; //逆變換       
14             info.m_strStatFile = @"D:\Data\pcasta.sta"; //最小噪聲變換
15             info.m_strFileTypeCode = "GTiff";
16             //info.lOutBandNum = 1;
17             PIE.SystemAlgo.ISystemAlgo algo = PIE.SystemAlgo.AlgoFactory.Instance().CreateAlgo("PIE.CommonAlgo.dll", "PIE.CommonAlgo.TransformFuncAlgo");
18             if (algo == null) return;
19             #endregion
20 
21             //二、算法執行
22             PIE.SystemAlgo.ISystemAlgoEvents algoEvents = algo as PIE.SystemAlgo.ISystemAlgoEvents;
23             algo.Name = "最小噪聲正變換";
24             algo.Params = info;
25             bool result = PIE.SystemAlgo.AlgoFactory.Instance().ExecuteAlgo(algo);
26 
27             //三、結果顯示
28             ILayer layer = PIE.Carto.LayerFactory.CreateDefaultLayer(@"D:\Data\MinimumNoiseTransformation.tif");
29             m_HookHelper.ActiveView.FocusMap.AddLayer(layer);
30             m_HookHelper.ActiveView.PartialRefresh(ViewDrawPhaseType.ViewAll);
31         }
32         //(二)最小噪聲逆變換
33         /// <summary>
34         ///最小噪聲逆變換算法測試,本算法實現了將World.tif進行最小噪聲逆變換
35         /// </summary>
36         public override void OnClick()
37         {
38             #region 一、參數設置
39             PIE.CommonAlgo.DataTrans_Exchange_Info info = new PIE.CommonAlgo.DataTrans_Exchange_Info();
40 
41             info.m_strInputFile = @"D:\Data\MinimumNoiseTransformation.tif";
42             info.m_strOutputFile = @"D:\Data\ip_result7.tif";      
43             info.AlgoType = 1; //最小噪聲變換     
44             info.bForward = false; //逆變換        
45             info.m_strStatFile = @"D:\Data\pcasta.sta"; //最小噪聲變換
46             info.m_strFileTypeCode = "GTiff";
47      
48             PIE.SystemAlgo.ISystemAlgo algo = PIE.SystemAlgo.AlgoFactory.Instance().CreateAlgo("PIE.CommonAlgo.dll", "PIE.CommonAlgo.TransformFuncAlgo");
49             if (algo == null) return;
50             #endregion
51 
52             //二、算法執行
53             PIE.SystemAlgo.ISystemAlgoEvents algoEvents = algo as PIE.SystemAlgo.ISystemAlgoEvents;
54             algo.Name = "最小噪聲逆變換";
55             algo.Params = info;
56             bool result = PIE.SystemAlgo.AlgoFactory.Instance().ExecuteAlgo(algo);
57             //三、結果顯示
58             ILayer layer = PIE.Carto.LayerFactory.CreateDefaultLayer(@"D:\Data\ip_result7.tif");
59             m_HookHelper.ActiveView.FocusMap.AddLayer(layer);          m_HookHelper.ActiveView.PartialRefresh(ViewDrawPhaseType.ViewAll);
60         }
View Code

2.4. 示例截圖

最小噪聲正變換

 

最小噪聲逆變換

相關文章
相關標籤/搜索