1. 程式人生 > >PIE SDK位深轉換

PIE SDK位深轉換

 

1.演算法功能簡介

    位深轉換功能是一種用於更改一個給定輸入檔案資料範圍的靈活方法。可以完全控制輸入和輸出直方圖,以及輸出資料型別(位元組型、整型、浮點型等)。

    PIE支援演算法功能的執行,下面對位深轉換演算法功能進行介紹。

2.演算法功能實現說明

2.1 實現步驟

第一步

演算法引數設定

第二步

演算法執行

第三步

結果顯示

2.2 演算法引數

C#演算法DLL

PIE.CommonAlgo.dll

C#演算法名稱

PIE.CommonAlgo.BitDepthTransAlgo

引數結構體

DataBitDepthTrans_Exchange_Info

引數說明

m_strInputFile

String

輸入柵格影像的路徑

m_strOutputFile

String

輸出影像的路徑

m_strMinIn

Double

輸入檔案的像元最小值

m_strMaxIn

Double

輸入檔案的像元最大值

m_strMinOu

Double

輸出檔案的像元最小值

資料格式/最小值

"Byte";0

Int16";-32768

"UInt16";0

Int32";-2147483648

"UInt32";0

"Float32";0

"Float64";0

m_strMaxOu

Double

輸出檔案的像元最大值

資料格式/最大值

"Byte"; 255.0

Int16";32768

"UInt16"; 65535.0

Int32";2147483648

"UInt32"; 4294967295.0

m_strOutDataType

String

輸出資料型別

"Byte";"Int16";"UInt16";

Int32";"UInt32";"Float32";"Float64";

m_strOutFileType

String

根據輸出型別獲得檔案編碼型別

.tif/.tiff——GTiff

.img—————HFA

其他—————ENVI

2.3示例程式碼

專案路徑

百度雲盤地址下/PIE示例程式/ FundamentalToolDemo. BitDepthTransDemo ()

資料路徑

百度雲盤地址下/ PIE示例資料/柵格數/World/world.tiff

視訊路徑

百度雲盤地址下/PIE視訊教程/位深轉換演算法avi

示例程式碼

 1          /// <summary>
 2         ///位深轉換演算法測試,本演算法實現了將World.tif的資料型別轉換為”Int16”生成World2.tif檔案
 3         /// </summary>
 4         private void Test_KrigingInterpolationAlgo()
 5         {
 6             #region 1、引數設定
 7             PIE.CommonAlgo.DataBitDepthTrans_Exchange_Info info = new PIE.CommonAlgo.DataBitDepthTrans_Exchange_Info();
 8             info.InputFile = @"D:\Data\World.tif";
 9             info.OutputFile = @"D:\Data\World2.tif";
10             info.MaxIn = 255;
11             info.MinIn = 0;
12             info.MaxOut = 32768;
13             info.MinOut = -32768;
14             info.OutDataType = 1;
15 
16             PIE.SystemAlgo.ISystemAlgo algo = PIE.SystemAlgo.AlgoFactory.Instance().CreateAlgo("PIE.CommonAlgo.dll", "PIE.CommonAlgo.BitDepthTransAlgo");
17             if (algo == null) return;
18 #endregion
19             //2、演算法執行
20             PIE.SystemAlgo.ISystemAlgoEvents algoEvents = algo as PIE.SystemAlgo.ISystemAlgoEvents;
21             algo.Name = "位深轉換";
22             algo.Params = info;
23           PIE.SystemAlgo.AlgoFactory.Instance().ExecuteAlgo(algo);          
24             //3、結果顯示
25 ILayer layer = PIE.Carto.LayerFactory.CreateDefaultLayer(@"D:\Data\World2.tif");
26             m_HookHelper.ActiveView.FocusMap.AddLayer(layer);           m_HookHelper.ActiveView.PartialRefresh(ViewDrawPhaseType.ViewAll);        
27        }
View Code

2.4示例截圖