Click or drag to resize
XDL

XDMBandChangeDetectSpecAng Class

XBandParamChangeDetectSpecAng 클래스는 2장의 이미지 간의 화소 변환 탐지를 수행하여 변화 영역을 탐지하는 기능을 정의한다. 여기에서 2장의 이미지는 영상정합 후의 이미지라고 가정한다.
Inheritance Hierarchy
SystemObject
  Pixoneer.NXDL.NRSXDMBand
    Pixoneer.NXDL.NRSXDMBandChangeDetectSpecAng

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

The XDMBandChangeDetectSpecAng type exposes the following members.

Constructors
 NameDescription
Public methodXDMBandChangeDetectSpecAng XDMBandChangeDetectSpecAng 클래스의 기본 생성자로서, 멤버변수에 대하여 초기화를 수행한다.
Top
Methods
 NameDescription
Public methodGetInputParam 객체에 설정된 입력 변수를 얻는다.
Public methodSetColor 사용자가 직접 변화탐지 결과에 대한 칼라 칼라값을 설정한다. 입력 인덱스에 입력 Color값을 설정한다.
Public methodSetColorTable 변화탐지 결과를 도시하여 강도별로 분석하기 위해 ColorTable을 설정한다.
Public methodSetInputParam 2장의 영상에 대한 변화탐지를 수행하기 위한 파라미터를 정의한 XBandParamChangeDetectSpecAng객체를 설정한다.
Public methodUpdateCutMaxAngle 변화탐지에 대한 최대 Angle값을 초기화 상태 없이 업데이트한다.
Public methodUpdateCutMinAngle 변화탐지에 대한 최소 Angle값을 초기화 상태 없이 업데이트한다.
Public methodUpdateDarknessLevel1 변화탐지에 대한 DN값이 낮은 값에 대해서 적용하지 않는다.
Public methodUpdateDarknessLevel2 변화탐지에 대한 DN값이 낮은 값에 대해서 적용하지 않는다.
Top
Remarks

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

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

Example
This is example C#:
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
XBandParamChangeDetectSpecAng InputParam = new XBandParamChangeDetectSpecAng();

for (int i = 0; i < xrsFileInput1.NumBand; i++)
{
    InputParam.ArrBandList1.Add(xrsFileInput1.GetBandAt(i));
}

for (int i = 0; i < xrsFileInput2.NumBand; i++)
{
    InputParam.ArrBandList2.Add(xrsFileInput2.GetBandAt(i));
}

InputParam.BinaryFlag = false;

InputParam.CutMinAnlge = 0;
InputParam.CutMinAnlge = 45;

InputParam.ColorIndex = eColorTable.Rainbow;
InputParam.DarknessLevel1 = 0.2;
InputParam.DarknessLevel2 = 0.2;

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

// 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
XThread thd = null;
String strFilePathSave = "D:\\Sample\\ChangeDetectSpecAng.xdm";
if (!RasterIO.Export(ref fileSave, strFilePathSave, "XDM", out strError, thd))
{
    return;
}
See Also