PIE SDK正射校訂

1. 算法功能簡介

        正射校訂是對影像空間和幾何畸變進行校訂生成多中心投影平面正射圖像的處理過程。它除了能糾正通常系統因素產生的幾何畸變外,還能夠消除地形引發的幾何畸變算法

        PIE支持算法功能的執行,下面對正射校訂算法功能進行介紹。ide

 

2. 算法功能實現說明

2.1. 實現步驟

第一步測試

算法參數設置編碼

第二步spa

算法執行3d

第三步code

結果顯示視頻

2.2. 算法參數

算法名稱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

2.3. 示例代碼

項目路徑

百度雲盤地址下/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         }
View Code

2.4.示例截圖

相關文章
相關標籤/搜索