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: 1.2.817.72
Syntax
C#
public class XDMBandChangeDetectSpecAng : XDMBand

The XDMBandChangeDetectSpecAng type exposes the following members.

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

This class is very useful for various change detection applications including military, urban, planning, forest, and natural disaster applications.

The change detection is performed using the concept of statistical probability. Users can detect changes easily with NXMapView.

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\\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 MapView 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