시스템개발툴킷

제품화 분야 > 시스템개발툴킷 > XDL TIP

[NXDL] XColorTable사용하기

작성자
pixoneer
작성일
2016-11-19 07:47
조회
2633
// XColorTable은 Peusdo Color의 리스트를 가지고 있어서 인텍스로 칼라 테이블을 설정하거나 사용자가 0~255갯수의 칼라를 설정하여 사용이 가능.
// 칼라테이블은 영상처리를 통해 분류를 수행한 결과물이나 변화탐지의 결과물에 대해 특정한 칼라값을 지정할때 사용.
// XDMBand로부터 GIS의 ID와 칼라값을 얻어 XColorTable에 설정하여 객체를 생성하는 예제임.

  // 1. 영상의 로더객체 생성 및 초기화
XRasterIO RasterIO = new XRasterIO();
String strError = "";
if (RasterIO.Initialize(out strError) == false)
{
       return;
}

// 2. 파일로부터 영상을 로딩
String strFilePathLoad = "D:/Sample/Changedetected.xdm";
XRSLoadFile xrsFileInput = RasterIO.LoadFile(strFilePathLoad, out strError, false, eIOCreateXLDMode.All_NoMsg);

// 3. 결과 밴드를 추출
XDMBand band = xrsFileInput.GetBandAt(0);

// 4. 밴드의 타입이 GIS여여부를 확인
if (band.BandType == eBandType.GIS)
{
// 5. 칼라테이블을 생성하고 0~255사이의 원하는 인덱스 값에 칼라를 설정. 먼저 검정색(0, 0, 0)으로 초기화
       XColorTable clrTable = new XColorTable();
       int i;
       for (i = 0; i < 256; i++)
      {
             clrTable.SetCLT(i, 0, 0, 0);
      }

     // 6. 칼라테이블을 생성하고 0~255사이의 원하는 인덱스 값에 칼라를 설정. 먼저 검정색(0, 0, 0)으로 초기화
      int iNumGIS = band.GetNumOfGIS();
      for (i = 0; i < iNumGIS; i++)
     {
            XRSGIS pGIS = band.GetGISAt(i);
           clrTable.SetCLT(pGIS.ID, pGIS.crRed, pGIS.crGreen, pGIS.crBlue);
      }

// 7. 칼라테이블의 사용

// XDMComposite에 칼라값을 설정하고 XMapView를 통해 XDMBand를 그림
// ....
// XDMComposite comp = new XDMComposite();
// comp.SetCLT(clrTable);
// ...
}
전체 0