Click or drag to resize
XDL

XDMBandEOIR Class

중첩되는 영역의 EO 영상과 IR 영상을 융합한다.
Inheritance Hierarchy

Namespace:  Pixoneer.NXDL.NRSEX
Assembly:  NXDLrsEx (in NXDLrsEx.dll) Version: 2.0.3.31
Syntax
C#
public class XDMBandEOIR : XDMBand

The XDMBandEOIR type exposes the following members.

Constructors
  NameDescription
Public methodXDMBandEOIR
XDMBandEOIR클래스의 기본 생성자로서, 멤버변수에 대하여 초기화를 수행한다.
Top
Methods
  NameDescription
Public methodDoFusion
Fusion을 수행한다.
Public methodGetInputParam
Fusion을 위한 입력 파라미터를 얻는다.
Public methodSetInputParam
Fusion을 위한 입력 파라미터를 설정.
Top
Examples
This is example C#:
// 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;
}
See Also