|
XDMBandEOIR Class
|
중첩되는 영역의 EO 영상과 IR 영상을 융합한다.
Inheritance Hierarchy
Namespace: Pixoneer.NXDL.NRSEXAssembly: NXDLrsEx (in NXDLrsEx.dll) Version: 2.0.3.38
Syntaxpublic class XDMBandEOIR : XDMBand
The XDMBandEOIR type exposes the following members.
Constructors | Name | Description |
---|
 | XDMBandEOIR | XDMBandEOIR클래스의 기본 생성자로서, 멤버변수에 대하여 초기화를 수행한다. |
Top
Methods
Example
This is example C#:
XRasterIO RasterIO = new XRasterIO();
String strError = "";
if (RasterIO.Initialize(out strError) == false)
{
return;
}
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);
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;
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;
XDMBandEOIR bandProcess = new XDMBandEOIR();
if (!bandProcess.SetInputParam(ref InputParam))
{
return;
}
XThread thd = null;
bandProcess.DoFusion(thd);
XRSSaveFile fileSave = new XRSSaveFile();
XDMBand bandCast = (XDMBand)bandProcess;
fileSave.AddBand(ref bandCast);
String strFilePathSave = @"D:\Sample\eoir.xdm";
if (!RasterIO.Export(ref fileSave, strFilePathSave, "XDM", out strError, thd))
{
return;
}
See Also