正射校訂是對影像空間和幾何畸變進行校訂生成多中心投影平面正射圖像的處理過程。它除了能糾正通常系統因素產生的幾何畸變外,還能夠消除地形引發的幾何畸變算法
PIE支持算法功能的執行,下面對正射校訂算法功能進行介紹。ide
第一步測試 |
算法參數設置編碼 |
第二步spa |
算法執行3d |
第三步code |
結果顯示視頻 |
算法名稱blog |
正射校訂教程 |
|
C#算法DLL |
PIE.CommonAlgo.dll |
|
C#算法名稱 |
PIE.CommonAlgo.PIEOrthoAlgo |
|
參數結構體 |
DataPreOrtho_Exchange_Info |
|
參數說明 |
||
FileName |
String |
輸入文件 (*.tif;*.tiff;*.bmp;*.img;*.jpg;*.ldf) |
Demfile |
String |
輸入的DEM文件(可選) 覆蓋影像範圍 |
ConstDem |
Float |
設置高程常值(可選) 這個是把一個地區看作是一個平坦地區,因此能夠取一個常數,通常取340 |
RPBFileName |
String |
正射校訂的RPC文件路徑 (*.txt/*.RPB) |
DestFileName |
String |
輸出文件(*.tif;*.tiff; *.img) |
ErroFile |
String |
有控制點時,能夠輸出精度報告文件 |
OutPixelX |
Float |
輸入影像的X方向分辨率 高分一 0.00008 (多光譜) 0.00002 (全色) 0.00016 (WFV) 高分二 0.000032 (多光譜) 0.000008 (全色) |
OutPixelY |
float |
輸入影像的Y方向分辨率 高分一 0.00008 (多光譜) 0.00002 (全色) 0.00016 (WFV) 高分二 0.000032 (多光譜) 0.000008 (全色) |
gcpWKT |
String |
輸入控制點的座標系 |
destWKT |
String |
默認是WGS84座標系,能夠選擇 |
GCP |
IList<PIE.CommonAlgo .Struct_GCP> |
控制點(由ptID控制點索引號、ptType控制點類型Control、x像素座標、y像素座標、X地理座標、Y地理座標、Z地理座標,ex偏差,ey偏差組成) |
proSrcULX |
Int |
處理範圍(這個是針對GF1數據的,從XML裏獲取是不是MSS的數據(根據Xml裏的ImageGSD分辨率大小判斷是MSS仍是PAN),若是是則四周去掉2行進行處理,這個是爲了後續拼接效果作的,GF1數據通常四周2行都有一些問題。 |
proSrcULY |
Int |
處理範圍 |
proSrcWidth |
Int |
處理範圍 |
SrcHeight |
Int |
處理範圍 |
GcpFileName |
String |
控制點文件路徑(可選) |
imageResampling |
Int |
重採樣類型 (最近鄰點法0/雙線性1/三次卷積法2) |
FuncName |
String |
功能名稱 |
FileType |
String |
根據輸出類型得到文件編碼類型 .tif/.tiff——GTiff .img—————HFA 其餘—————ENVI |
項目路徑 |
百度雲盤地址下/PIE示例程序/10.算法調用/圖像預處理/ PIE.ImagePreprocessing. PIEOrthoAlgo |
數據路徑 |
百度雲盤地址下/PIE示例數據/柵格數據/01.GF1/ GF1_PMS1_E116.5_N39.4_20131127_L1A0000117600-MSS1.tiff GF1_PMS1_E116.5_N39.4_20131127_L1A0000117600-MSS1.rpb |
視頻路徑 |
百度雲盤地址下/PIE視頻教程/10.算法調用/圖像預處理/正射校訂算法.avi |
示例代碼 |
|
![]() 1 /// <summary> 2 ///正射校訂算法測試,本算法實現了將GF1_PMS1_E116.5_N39.4_20131127_L1A0000117600-MSS1.tiff進行最近鄰域法正射校訂 3 /// </summary> 4 public override void OnClick() 5 { 6 #region 一、參數設置 7 PIE.CommonAlgo.DataPreOrtho_Exchange_Info info= new PIE.CommonAlgo.DataPreOrtho_Exchange_Info(); 8 info.FileName = @"D:\Data\ GF1_PMS1_E116.5_N39.4_20131127_L1A0000117600-MSS1.tiff "; 9 info.RPBFileName = @"D:\Data\ GF1_PMS1_E116.5_N39.4_20131127_L1A0000117600-MSS1.rpb"; 10 info.DestFileName = @"D:\Data\result3.tif"; 11 info.OutPixelX = 0.00008F; 12 info.OutPixelY = 0.00008F; 13 string path = @"D:\Data\result2.tif"; 14 IRasterDataset rDataset = DatasetFactory.OpenDataset(path, OpenMode.ReadOnly) as IRasterDataset; 15 16 info.destWKT = SpatialReferenceFactory.CreateSpatialReference((int)GeoCSType.GeoCSType_WGS1984).ExportToWkt(); 17 info.proSrcULX=2; 18 info.proSrcULY=2; 19 info.proSrcWidth=rDataset.GetRasterXSize()-4; 20 info.SrcHeight=rDataset.GetRasterYSize()-4; 21 info.imageResampling = 0; 22 info.FileType = "Gtiff"; 23 24 PIE.SystemAlgo.ISystemAlgo algo = PIE.SystemAlgo.AlgoFactory.Instance().CreateAlgo("PIE.CommonAlgo.dll", "PIE.CommonAlgo.PIEOrthoAlgo"); 25 if (algo == null) return; 26 #endregion 27 28 //二、算法執行 29 PIE.SystemAlgo.ISystemAlgoEvents algoEvents = algo as PIE.SystemAlgo.ISystemAlgoEvents; 30 algo.Name = "正射校訂"; 31 algo.Params = info; 32 bool result = PIE.SystemAlgo.AlgoFactory.Instance().ExecuteAlgo(algo); 33 34 //三、結果顯示 35 ILayer layer = PIE.Carto.LayerFactory.CreateDefaultLayer(@"D:\Data\result3.tif"); 36 m_HookHelper.ActiveView.FocusMap.AddLayer(layer); m_HookHelper.ActiveView.PartialRefresh(ViewDrawPhaseType.ViewAll); 37 } |