XDMBandEOIR Class |
Namespace: Pixoneer.NXDL.NRSEX
public class XDMBandEOIR : XDMBand
The XDMBandEOIR type exposes the following members.
Name | Description | |
---|---|---|
XDMBandEOIR | XDMBandEOIR클래스의 기본 생성자로서, 멤버변수에 대하여 초기화를 수행한다. |
Name | Description | |
---|---|---|
DoFusion | Fusion을 수행한다. | |
GetInputParam | Fusion을 위한 입력 파라미터를 얻는다. | |
SetInputParam | Fusion을 위한 입력 파라미터를 설정. |
// IO initialize to load image file XRasterIO RasterIO = new XRasterIO(); String strError = ""; if (RasterIO.Initialize(out strError) == false) { return; } // Image load String strFilePathLoad1 = "D:\\Sample\\RS_Sample\\Fusion\\eo.xdm"; String strFilePathLoad2 = "D:\\Sample\\RS_Sample\\Fusion\\ir.xdm"; XRSLoadFile xrsFileInput1 = RasterIO.LoadFile(strFilePathLoad1, out strError, false, eIOCreateXLDMode.All_NoMsg); XRSLoadFile xrsFileInput2 = RasterIO.LoadFile(strFilePathLoad2, out strError, false, eIOCreateXLDMode.All_NoMsg); // Set input param XDMBand bandEO = xrsFileInput1.GetBandAt(0); XDMBand bandIR = xrsFileInput2.GetBandAt(0); double nEOOffsetX = 0, nEOOffsetY = 0, nIROffsetX = 0, nIROffsetY = 0; double minx, maxx, miny, maxy; double nminX, nmaxX, nminY, nmaxY; double minx_eo, maxx_eo, miny_eo, maxy_eo; double minx_ir, maxx_ir, miny_ir, maxy_ir; minx_eo = maxx_eo = miny_eo = maxy_eo = 0; minx_ir = maxx_ir = miny_ir = maxy_ir = 0; nminX = nmaxX = nminY = nmaxY = 0; bandEO.GetBoundRect(ref minx_eo, ref maxx_eo, ref miny_eo, ref maxy_eo); bandIR.GetBoundRect(ref minx_ir, ref maxx_ir, ref miny_ir, ref maxy_ir); minx = (minx_eo > minx_ir) ? minx_eo : minx_ir; maxx = (maxx_eo > maxx_ir) ? maxx_ir : maxx_eo; miny = (miny_eo > miny_ir) ? miny_eo : miny_ir; maxy = (maxy_eo > maxy_ir) ? maxy_ir : maxy_eo; nmaxX = maxx_eo; nminY = miny_eo; bandEO.WorldToPixel(ref nmaxX, ref nminY); nminX = minx_eo; nmaxY = maxy_eo; bandEO.WorldToPixel(ref nminX, ref nmaxY); int sizeX = (int)(Math.Abs(nmaxX - nminX)); int sizeY = (int)(Math.Abs(nmaxY - nminY)); nEOOffsetX = minx; nEOOffsetY = maxy; bandEO.WorldToPixel(ref nEOOffsetX, ref nEOOffsetY); nEOOffsetX -= nminX; nEOOffsetY -= nmaxY; nminX = minx_ir; nmaxY = maxy_ir; bandIR.WorldToPixel(ref nminX, ref nmaxY); nIROffsetX = minx; nIROffsetY = maxy; bandIR.WorldToPixel(ref nIROffsetX, ref nIROffsetY); nIROffsetX -= nminX; nIROffsetY -= nmaxY; // Set input param XBandParamEOIR InputParam = new XBandParamEOIRWeightedAverage(); InputParam.SrcBandEO = xrsFileInput1.GetBandAt(0); InputParam.SrcBandIR = xrsFileInput2.GetBandAt(0); InputParam.EOIRType = eEOIRType.WeightedAverage; InputParam.SubsetX1Src = 0; InputParam.SubsetX2Src = sizeX - 1; InputParam.SubsetY1Src = 0; InputParam.SubsetY2Src = sizeY - 1; InputParam.SubsetLevelSub = 0; InputParam.EOOffsetX = (int)nEOOffsetX; InputParam.EOOffsetY = (int)nEOOffsetY; InputParam.IROffsetX = (int)nIROffsetX; InputParam.IROffsetY = (int)nIROffsetY; ((XBandParamEOIRWeightedAverage)InputParam).Weight = 0.3; // Create New process band and set input param XDMBandEOIR bandProcess = new XDMBandEOIR(); if (!bandProcess.SetInputParam(ref InputParam)) { return; } // Do Fusion to create fused image XThread thd = null; bandProcess.DoFusion(thd); // Display to ImageView in realtime // create XRSSaveFile to save realtime band(XDMBandXXXX) XRSSaveFile fileSave = new XRSSaveFile(); XDMBand bandCast = (XDMBand)bandProcess; fileSave.AddBand(ref bandCast); // Save output file String strFilePathSave = @"D:\Sample\eoir.xdm"; if (!RasterIO.Export(ref fileSave, strFilePathSave, "XDM", out strError, thd)) { return; }