Click or drag to resize
XDL

XDMBandChangeDetect Class

XDMBandChangeDetect 클래스는 2장의 영상 간 화소 변화 탐지를 수행하여 변화 영역을 탐지하는 기능을 정의한다.
Inheritance Hierarchy
SystemObject
  Pixoneer.NXDL.NRSXDMBand
    Pixoneer.NXDL.NRSXDMBandChangeDetect

Namespace: Pixoneer.NXDL.NRS
Assembly: NXDLrs (in NXDLrs.dll) Version: 2.0.3.38
Syntax
C#
public class XDMBandChangeDetect : XDMBand

The XDMBandChangeDetect type exposes the following members.

Constructors
 NameDescription
Public methodXDMBandChangeDetect XDMBandChangeDetect 클래스의 기본 생성자로서, 멤버변수에 대하여 초기화를 수행한다.
Top
Methods
 NameDescription
Public methodGetInputParam 설정된 입력 변화탐지 변수를 얻는다.
Public methodSetColor 사용자가 직접 변화탐지 결과에 대한 칼라값을 설정한다. 입력 인덱스에 입력 Color값을 설정한다.
Public methodSetColorTable 변화탐지 결과를 도시하여 강도별로 분석하기 위해 색상표를 설정한다.
Public methodSetInputParam 2장의 영상에 대해 변화탐지를 수행하기 위한 파라미터를 설정한다.
Top
Remarks

군사, 도심, 계획, 산림, 자연재해 등과 같은 어플리케이션에서 다양한 변화탐지를 수행할 때 매우 유용하다.

변화탐지는 통계적 확률 개념을 이용하여 수행한다. 사용자는 NXImageView를 통해 쉽게 결과를 확인해 볼 수 있다.

Example
두 영상을 이용하여 Angle 변화탐지 기법을 적용하여 탐지결과를 파일로 저장한다.
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\\ChangeDetect\\change_1.xdm";
String strFilePathLoad2 = "D:\\Sample\\RS_Sample\\ChangeDetect\\change_2.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
XBandParamChangeDetect InputParam = new XBandParamChangeDetect();
InputParam.SrcBand1 = xrsFileInput1.GetBandAt(0);
InputParam.SrcBand2 = xrsFileInput2.GetBandAt(0);

InputParam.ChangeDetectType = eChangeDetectType.Angle;
InputParam.BinaryFlag = false;

// Unchanged angle (43~47)
InputParam.AngleUnchangeMin = 38;
InputParam.AngleUnchangeMax = 52;

InputParam.ColorIndex = eColorTable.Rainbow;
InputParam.DarknessLevel = 0.4;

// Create New process band and set input param
XDMBandChangeDetect bandProcess = new XDMBandChangeDetect();
if (!bandProcess.SetInputParam(ref InputParam))
{
    return;
}

// create XRSSaveFile to save realtime band(XDMBandXXXX)
XRSSaveFile fileSave = new XRSSaveFile();
XDMBand bandCast = (XDMBand)bandProcess;

fileSave.AddBand(ref bandCast);

// Save output file
XThread thd = null;
String strFilePathSave = "D:\\Sample\\ChangeDetect.xdm";
if (!RasterIO.Export(ref fileSave, strFilePathSave, "XDM", out strError, thd))
{
    return;
}
See Also