Click or drag to resize
XDL

XDMBandShadowEnhance Class

영상의 특정 영역에 대한 그림자 개선을 수행한다.
Inheritance Hierarchy
SystemObject
  Pixoneer.NXDL.NRSXDMBand
    Pixoneer.NXDL.NRSEXXDMBandShadowEnhance

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

The XDMBandShadowEnhance type exposes the following members.

Constructors
  NameDescription
Public methodXDMBandShadowEnhance
XDMBandShadowEnhance 클래스의 기본 생성자로서, 멤버변수에 대하여 초기화를 수행한다.
Top
Methods
  NameDescription
Public methodAddRegion(ArrayList)
그림자 개선을 수행하기 위한 영역 설정. 영역 내 한 픽셀당 XvcPolygon 한개를 생성해서 Array 에 추가한다. XDMBandFeatureExt::SetPolygon([OutAttribute] ArrayList^% arrPolygon) 과 연계하여 사용 가능.
Public methodAddRegion(XvcPolygon)
그림자 개선을 수행하기 위한 영역 설정.
Public methodGetInputParam
그림자 개선을 위한 입력 파라미터를 얻는다.
Public methodGetNumRegions
추가된 그림자 개선 영역 개수를 가져온다.
Public methodRemoveRegionAt
해당 index 의 그림자 개선 영역 삭제.
Public methodSetInputParam
그림자 개선을 위한 입력 파라미터를 설정.
Top
Examples
This is example C# : XDMBandFeatureExt 를 이용하여 비슷하거나 동일한 화소값을 추출하고 추출한 화소 영역에 대한 그림자 개선을 수행하는 예제
// IO initialize to load image file
XRasterIO rasterIO = new XRasterIO();
String strError = "";
if (rasterIO.Initialize(out strError) == false)
{
    return;
}

// Image load
string strFilePath = @"E:\SampleImage\IKONOS_geo.xdm";
XRSLoadFile xrsFileSrc = rasterIO.LoadFile(strFilePath, out strError, false, eIOCreateXLDMode.All_NoMsg);

// Feature 추출을 위한 변수 값 설정
XBandParamFeatureExt paramFeatureExt = new XBandParamFeatureExt();
for (int i = 0; i < xrsFileSrc.NumBand; i++)
    paramFeatureExt.ArrBandList.Add(xrsFileSrc.GetBandAt(i));
paramFeatureExt.Search8 = false;
paramFeatureExt.Std_delta_expand = 0.5;
paramFeatureExt.Std_delta_shrink = 0.5;
paramFeatureExt.ErodeDilateDirection = (int)(XErodeDilate.Left | XErodeDilate.Right | XErodeDilate.Up | XErodeDilate.Down);
paramFeatureExt.Limit = true;
paramFeatureExt.MaxPixelCnt = 1000;

// Create New process band and set input param
XDMBandFeatureExt bandFeatureExt = new XDMBandFeatureExt();
bandFeatureExt.CreateFeature("Feature1", System.Drawing.Color.FromArgb(255, 255, 255, 0));
if (!bandFeatureExt.SetInputParam(ref paramFeatureExt))
{
    MessageBox.Show("fail to set parameters.");
    return;
}

// Feature 추출
if (!bandFeatureExt.ExtractFeatureFromSeedPixel(0, 600, 600, null))
{
    MessageBox.Show("fail to extract feature from seedpixel.");
    return;
}

// 추출한 feature 영역을 각 화소 단위로 XvcPolygon 으로 만든다.
// 만들어진 XvcPolygon 을 ArrayList 에 추가하여 가져온다.
ArrayList arrPolygon = new ArrayList();
bandFeatureExt.GetPolygon(out arrPolygon);

// 그림자 영역 개선을 위한 소스밴드 설정
XBandParamShadowEnhance paramShadowEnhance = new XBandParamShadowEnhance();
paramShadowEnhance.SrcBand = xrsFileSrc.GetBandAt(0);

// Create New process band and set input param - 그림자 개선 
XDMBandShadowEnhance bandShadowEnhance = new XDMBandShadowEnhance();
if (!bandShadowEnhance.SetInputParam(ref paramShadowEnhance))
{
    MessageBox.Show("fail to set parameters.");
    return;
}

// create XRSSaveFile to save realtime band(XDMBandXXXX)
XRSSaveFile fileSave = new XRSSaveFile();
for (int i = 0; i < xrsFileSrc.NumBand; i++)
{
    XBandParamShadowEnhance param = new XBandParamShadowEnhance(ref paramShadowEnhance);
    param.SrcBand = xrsFileSrc.GetBandAt(i);

    XDMBandShadowEnhance bandTemp = new XDMBandShadowEnhance();
    bandTemp.BandName = xrsFileSrc.GetBandAt(i).BandName;
    bandTemp.SetInputParam(ref param);
    bandTemp.AddRegion(arrPolygon); // 그림자 개선 영역 추가

    XDMBand bandCast = (XDMBand)bandTemp;
    fileSave.AddBand(ref bandCast);
}

// Save output file
String strFilePathSave = @"E:\SampleImage\Result_ShadowEnhance01.xdm";
if (rasterIO.Export(ref fileSave, strFilePathSave, "XDM", out strError, null))
{
    MessageBox.Show("성공");
    return;
}
This is example C# : XvcPolygon 으로 생성한 특정 영역에 대한 그림자 개선을 수행하는 예제
// IO initialize to load image file
XRasterIO rasterIO = new XRasterIO();
String strError = "";
if (rasterIO.Initialize(out strError) == false)
{
    return;
}

// Image load
string strFilePath = @"E:\SampleImage\IKONOS_geo.xdm";
XRSLoadFile xrsFileSrc = rasterIO.LoadFile(strFilePath, out strError, false, eIOCreateXLDMode.All_NoMsg);

// 그림자 개선 영역 설정
XvcPolygon polygon = new XvcPolygon();
polygon.Add(127.3652, 36.3833, 0.0);
polygon.Add(127.3663, 36.3833, 0.0);
polygon.Add(127.3663, 36.3831, 0.0);
polygon.Add(127.3652, 36.3832, 0.0);

// 그림자 영역 개선을 위한 소스밴드 설정
XBandParamShadowEnhance paramShadowEnhance = new XBandParamShadowEnhance();
paramShadowEnhance.SrcBand = xrsFileSrc.GetBandAt(0);

// Create New process band and set input param 
XDMBandShadowEnhance bandShadowEnhance = new XDMBandShadowEnhance();
if (!bandShadowEnhance.SetInputParam(ref paramShadowEnhance))
{
    MessageBox.Show("fail to set parameters.");
    return;
}

// create XRSSaveFile to save realtime band(XDMBandXXXX)
XRSSaveFile fileSave = new XRSSaveFile();
for (int i = 0; i < xrsFileSrc.NumBand; i++)
{
    XBandParamShadowEnhance param = new XBandParamShadowEnhance(ref paramShadowEnhance);
    param.SrcBand = xrsFileSrc.GetBandAt(i);

    XDMBandShadowEnhance bandTemp = new XDMBandShadowEnhance();
    bandTemp.BandName = xrsFileSrc.GetBandAt(i).BandName;
    bandTemp.SetInputParam(ref param);
    bandTemp.AddRegion(polygon); // 그림자 개선 영역 추가

    XDMBand bandCast = (XDMBand)bandTemp;
    fileSave.AddBand(ref bandCast);
}

// Save output file
String strFilePathSave = @"E:\SampleImage\Result_ShadowEnhance02.xdm";
if (rasterIO.Export(ref fileSave, strFilePathSave, "XDM", out strError, null))
{
    MessageBox.Show("성공");
    return;
}
See Also