Click or drag to resize
XDL

XDMComposite Class

XDMComposite클래스는 1~3개 영상 밴드의 색합성을 위한 다양한 기능을 정의한다.
Inheritance Hierarchy
SystemObject
  Pixoneer.NXDL.NRSXDMComposite

Namespace: Pixoneer.NXDL.NRS
Assembly: NXDLrs (in NXDLrs.dll) Version: 3.0.0.0
Syntax
C#
public class XDMComposite : IDisposable

The XDMComposite type exposes the following members.

Constructors
 NameDescription
Public methodXDMComposite XDMComposite 객체에 기본 생성자로서 멤버 변수들을 초기화한다.
Public methodXDMComposite(XDMComposite*) XDMComposite 객체에 대하여 외부 비관리객체의 포인터를 입력받아 복사하여 초기화한다.
Top
Properties
 NameDescription
Public propertyAlpha 영상을 도시할 때 투명도를 설정하거나 얻는다.
Public propertyApplyTransparent 투명값을 적용할지 여부를 설정하거나 얻는다.
Public propertyCode exampleInterpolByCubic 영상을 도시할 때 Cubic Interpolation을 수행할지 여부를 설정하거나 얻는다.
Public propertyInterpolPixel 영상을 도시할 때 Interpolation을 수행할지 여부를 설정하거나 얻는다.
Public propertyMaxDepthWarpCoeff 좌표계가 다른 시스템에 투영할 때 사용하는 Warping Coefficient의 최대 분할 깊이.
기본값 : 2(영상 밴드를 가로 4개, 세로 4개로 분할하여 Warping Coefficient 계산)
-1을 입력하면 투영될 때마다 정확도를 위해 Warping coefficient를 세분화하여 자동 생성
Public propertyMode 색합성 종류를 설정하거나 얻는다.
Public propertyName 색합성의 이름을 설정하거나 얻는다.
Public propertyShowBoundary 색합성(Composite)의 경계역역을 도시할지 여부를 설정하거나 얻는다.
Public propertyShowCenter 색합성(Composite)의 중심을 도시할지 여부를 설정하거나 얻는다.
Top
Methods
 NameDescription
Public methodAddHistPt 입력 인덱스에 대하여 Piecewise Linear Stretching을 적용하기 위해 경계값 및 Intensity 값을 추가한다.
Public methodAddXValue 입력 인덱스에 해당하는 Piecewise Linear를 적용하기 위한 X 값을 추가한다.
Public methodGetBand 입력 인덱스에 해당하는 영상 밴드를 얻는다.
Public methodGetBoundRect 공간 상의 경계 영역을 얻는다.
Public methodGetBrightness 설정된 밝기값을 얻는다(-255~255).
Brightness is an attributes of visual perception in which a source appears to be radiating or reflecting light.
Adjusted pixel value = original pixel + brightness adjustment value.
Public methodGetCLT 색상표를 가져온다.
Public methodGetColorBalance Color balance 값을 얻는다.
Public methodGetContrast 설정된 대비(Contrast) 값(-127~127)을 얻는다.
Contrast is the difference in luminance or color that makes an object distinguishable.
Adjusted pixel value = 128 + (original pixel - 128) * contrast adjustment value.
Public methodGetCurSubsetStatistics 입력 인덱스에 로딩된 데이터를 기준으로 현재 통계 정보를 얻는다.
통계값이 유효하지 않은 경우에는 계산하여 반환한다.
Public methodGetCutMax 대비 조절을 위한 최대값을 반환한다.
Public methodGetCutMin 대비 조절을 위한 최소값을 반환한다.
Public methodGetCutType 대비 조절을 위한 영상 데이터 최소 최대값 계산하는 방법을 얻는다.
Public methodGetDIBits(Double, Double, Double, Double, Int32, Int32, Int32) 색합성에 특정 영역의 영상을 도시하고 그 영상의 DIB 데이터를 얻는다.
Public methodGetDIBits(Double, Double, Double, Double, Int32, Int32, Int32, Color) 색합성에 특정 영역의 영상을 도시하고 그 영상의 DIB 데이터를 얻는다.
Public methodGetGammaValue 영상의 밝기 조절을 위해 입력 인덱스에 대응하는 감마(Gamma)값을 얻는다.
Public methodGetHideFlag 입력 인덱스에 대응하는 영상의 도시 여부를 얻는다.
Public methodGetHistPtsList 입력 인덱스에 해당하는 Piecewise Linear에 대한 정점들의 배열과 Intensity값 배열을 얻는다.
Public methodGetIntensity000 입력 인덱스에 해당하는 Intensity 최소값(histogram stretching에 적용)을 얻는다.
Public methodGetIntensity255 입력 인덱스에 해당하는 Intensity 최대값(histogram stretching에 적용)을 얻는다.
Public methodGetNumOfHistPts 입력 인덱스에 해당하는 Piecewise Linear를 위한 정점들의 갯수를 얻는다.
Public methodGetNumOfXValues 입력 인덱스에 해당하는 Piecewise Linear를 위한 X 값들의 갯수를 얻는다.
Public methodGetSaturation 설정된 채도(Saturation) 값(-100 ~ 100)을 얻는다.
Public methodGetSTB Stretch Table을 얻는다.
Public methodGetStretchCoverage 대비 조절 통계치를 계산하는 영역 형태를 가져온다.
Public methodGetStretchType 입력 인덱스에 해당하는 히스토그램 신장(stretching) 방법을 얻는다
Public methodGetSubsetStatistics 입력 인덱스에 로딩된 데이터를 기준으로 통계 정보를 계산하여 가져온다
Public methodGetTransparentValue(Int32) 입력 인덱스에 해당하는 밴드에 투명하게 처리하도록 설정한 화소값을 얻는다.
Public methodGetTransparentValue(Double, Double, Int32) 입력 인덱스에 해당하는 밴드에 투명하게 처리하도록 설정한 화소값 범위를 가져온다.
Public methodGetXValuesList 입력 인덱스에 해당하는 Piecewise Linear에 대한 X 값들의 배열을 얻는다.
Public methodRemoveAllHistPts 입력 인덱스에 해당하는 Piecewise Linear를 위한 정점(중간점)들을 모두 삭제한다.
Public methodRemoveAllXValues 입력 인덱스에 해당하는 Piecewise Linear를 위한 X 값들을 모두 삭제한다.
Public methodSetBand(XDMBand, eCompBandIdx) 영상 밴드를 해당 인덱스에 설정한다.
Public methodSetBand(XDMBand, Int32) 영상 밴드를 해당 인덱스에 설정한다.

색합성 종류(Mode)가 RGB인 경우 영상 밴드 설정시 3개의 밴드를 설정할 수 있으며, blue band(Idx = 0), green band(Idx = 1), red band(Idx = 2)의 순서로 설정한다.

색합성 종류(Mode)가 Gray인 경우 영상 밴드 설정시 1개만 설정하면 되고 인덱스는 0만 사용한다.

Public methodSetBandGIS XDMComposite를 Gray나 RGB로 만들기 위해 SetBand를 사용하지만, 분류(Classification) 영상처리 결과를 도시할 때는 SetBandGIS를 사용한다.
SetBandGIS 함수는 영상 밴드를 설정하면서 SetCutType, SetCutMin/Max, SetCLT 등의 함수를 자동으로 호출하여 GIS 밴드 도시를 일괄처리한다.
Public methodSetBrightness 도시 영상의 밝기를 변경하기 위해 Brightness(-255~255) 값을 설정한다.

Brightness is an attributes of visual perception in which a source appears to be radiating or reflecting light.
Adjusted pixel value = original pixel + brightness adjustment value.

Public methodSetCLT 색상표를 설정한다.
Public methodSetColorBalance Color balance 값를 설정한다. Color Balance는 칼라 값의 강도 조절을 의미한다.
Public methodSetContrast 도시 영상의 대비(contrast)를 변경하기 위해 Contrast(-127~127) 값을 설정한다. Contrast is the difference in luminance or color that makes an object distinguishable.
Adjusted pixel value = 128 + (original pixel - 128) * contrast adjustment value.
Public methodSetCutMax 대비 조절을 최대값을 설정한다.
SetCutType이 eCompCutType.User일 때 입력값이 적용된다.
Public methodSetCutMin 대비 조절을 최소값을 설정한다.
SetCutType이 eCompCutType.User일 때 입력값이 적용된다.
Public methodSetCutType 대비 조절을 위한 영상 데이터 최소 최대값 계산하는 방법을 설정한다.
Public methodSetGammaValue 영상 밝기 조절을 하기 위해 감마(Gamma)값을 설정한다.
해당 값은 감마 보정에 사용된다. 히스토그램 신장 방법 중 eCompStretchType.Gamma으로 설정된 경우 적용된다.
Public methodSetHideFlag 입력 인덱스에 대응하는 영상을 도시할지 여부를 설정한다.
Public methodSetIntensity000 입력 인덱스에 해당하는 Intensity 최소값(histogram stretching에 적용)을 설정한다.
Public methodSetIntensity255 입력 인덱스에 해당하는 Intensity 최대값(histogram stretching에 적용)을 설정한다.
Public methodSetSaturation 도시 영상의 채도(Saturation)를 변경하기 위해 값(-100~100)을 설정한다. 0으로 설정하면 채도가 적용되지 않는다.
Public methodSetSTB Stretch Table을 설정한다.
Public methodSetStretchCoverage 대비 조절 통계치를 계산하는 영역에 대한 형태(eCompStretchCoverage)을 설정한다.
통계치를 계산하는 데에 입력 인덱스에 해당하는 밴드의 전체 영역을 이용할지(밴드에 저장된 통계값), 도시된 화면 영역에 대한 데이터로 계산한 것을 이용할지 정하게 된다.
Public methodSetStretchType 입력 인덱스에 해당하는 히스토그램 신장(stretching) 방법을 설정한다.
Public methodSetTransparentValue(Double, Int32) 입력 인덱스에 대응하는 밴드에 투명하게 처리해야 할 화소값을 설정한다. 예를 들어 검은 색의 영역을 투명하게 처리하고 싶은 경우는 0을 설정한다.
Public methodSetTransparentValue(Double, Double, Int32) 입력 인덱스에 대응하는 밴드의 투명하게 처리하고자 하는 화소값 범위를 설정한다.
Top
Example
Red, Green, Blue 밴드 데이터를 이용하여 NXImageLayerComposites 객체에 새로운 RGB 색합성 객체를 생성하고 설정하여 추가한다. 새로운 색합성 객체에는 입력 strech coverage, stretch type, cut type이 설정된다.
C#
public void updateViewRGB(XDMBand bandR, XDMBand bandG, XDMBand bandB, NXImageLayerComposites compLayer, eCompStretchCoverage sc, eCompStretchType st, eCompCutType ct)
{
    compLayer.Lock();
    // get XDMCompManager and reset list
    XDMCompManager xdmCompManager = compLayer.GetXDMCompManager();
    for (int i = 0; i < xdmCompManager.NumComp; i++)
    {
        XDMComposite comp = xdmCompManager.GetXDMCompositeAt(i);
        comp.Dispose();
    }
    xdmCompManager.RemoveXDMCompositeAll();

    // Generate XDMComposite
    XDMComposite newComp = new XDMComposite();

    newComp.Mode = eCompMode.RGB;
    if (bandR != null) newComp.SetBand(ref bandR, eCompBandIdx.Red);
    if (bandG != null) newComp.SetBand(ref bandG, eCompBandIdx.Green);
    if (bandB != null) newComp.SetBand(ref bandB, eCompBandIdx.Blue);

    for (int i = 0; i < 3; i++)
    {
        newComp.SetCutType(ct, i);
        newComp.SetStretchCoverage(sc, i);
        newComp.SetStretchType(st, i);
    }

    xdmCompManager.AddXDMComposite(ref newComp);
    compLayer.ZoomFit();
    compLayer.Invalidate();
    compLayer.UnLock();
}
See Also