XDMBandShadowEnhance Class |
Namespace: Pixoneer.NXDL.NRSEX
public class XDMBandShadowEnhance : XDMBand
The XDMBandShadowEnhance type exposes the following members.
Name | Description | |
---|---|---|
XDMBandShadowEnhance | XDMBandShadowEnhance 클래스의 기본 생성자로서, 멤버변수에 대하여 초기화를 수행한다. |
Name | Description | |
---|---|---|
AddRegion(ArrayList) |
그림자 개선을 수행하기 위한 영역 설정. 영역 내 한 픽셀당 XvcPolygon 한개를 생성해서 Array 에 추가한다.
XDMBandFeatureExt::SetPolygon([OutAttribute] ArrayList^% arrPolygon) 과 연계하여 사용 가능.
| |
AddRegion(XvcPolygon) | 그림자 개선을 수행하기 위한 영역 설정. | |
GetInputParam | 그림자 개선을 위한 입력 파라미터를 얻는다. | |
GetNumRegions | 추가된 그림자 개선 영역 개수를 가져온다. | |
RemoveRegionAt | 해당 index 의 그림자 개선 영역 삭제. | |
SetInputParam | 그림자 개선을 위한 입력 파라미터를 설정. |
// 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; }
// 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; }