|
XDL Manual (piXoneer XDL Tutorial)
2개의 NXMapView를 이용하여 Original View와 Processed View를 생성하고 Original View에는 입력 영상을 도시하고 Processed View에는 공간 필터링된 영상을 도시하는 기능을 제작합니다.
2017. 01. 수정2019. 02.
|
1 사용하기본 튜터리얼을 공부하기 전에 먼저 “XDL MapView 활용 첫번째”를 먼저 선행하시기 바랍니다.
1.1 NXMapView를 이용한 예제 프로그램 만들기1.1.1 Visual Studio 2010을 실행한다.1.1.2 메뉴 [파일]-[새로 만들기]-[프로젝트]를 선택한다.
1.1.3 [새 프로젝트] 대화상자에서 왼쪽의 템플릿 창에서 “Visual C#”을 선택하고, 대화상자 중간의 목록에서 “Windows Forms 응용 프로그램”을 선택한다. 프로젝트의 이름을 입력하고 [새 프로젝트] 대화상자의 “확인” 버튼을 클릭한다.
프로젝트 이름은 Visual Studio가 생성하는 이름으로 기본으로 하겠다. 이 문서에서는 대화상자 오른쪽 아래에 있는 “솔루션용 디렉터리 만들기”는 선택하지 않겠다. “확인” 버튼을 누르면 프로젝트가 기본적으로 생성되고, 화면에 Form을 디자인할 수 있는 화면이 뜬다. 만약 아래와 같이 Form 디자인화면이 생성되지 않으면, [솔루션 탐색기] 창에서 “Form1.cs”를 마우스 더블클릭을 하여 디자인화면을 연다.
1.1.4 [도구상자]의 [항목선택]을 선택한다.[도구 상자] 창의 “일반”에서 마우스 오른쪽 버튼을 클릭하여 생성되는 팝업메뉴에서 “항목 선택” 메뉴를 선택한다.
메뉴를 선택하면 아래와 같이 [도구 상자 항목 선택] 대화상자가 나타나며, 대화상자 아래쪽에 있는 “찾아보기” 버튼을 클릭한다.
열기 대화상자에서 “C:\Pixoneer\XDL1.2\bin\NXMap.dll” 파일을 선택한 후 “열기”를 클릭하고, [도구 상자 항목 선택] 대화상자의 “확인” 버튼을 클릭한다.
.Net Framework 구성요소 탭에 다양한 레이어와 NXMapView가 설정된다. “확인”버튼을 클릭한다.
[도구상자] 에 다양한 MapLayer들과 NXMapView가 추가됨을 확인한다.
1.1.1 솔루션 탐색기의 프로젝트 하부의 [참조]의 오른쪽 마우스 클릭을 통해 [참조추가]를 선택한다.1.1.2 [찾아보기]탭으로 이동한 후 “C:\Pixoneer\XDL1.2\bin\”경로로 이동한다. Ctrl키를 누른 채 연속으로 “NXDL.dll”, “NXDLcc.dll”, “NXDLgr.dll”, “NXDLio.dll”, “NXDLrs.dll”을 선택한 후 “확인”버튼을 선택한다.
1.1.3 솔루션 탐색기의 프로젝트 하부의 [참조]항에 NXDL, NXDLcc, NXDLgr, NXDLio, NXDLrs가 추가되었음을 확인한다.
1.2 메뉴 생성하기1.2.1 [도구상자]의 MenuStrip을 선택하고 Form1의 상단부에 드래그하여 위치시킨다.
1.2.2 메뉴에 File – Open과 Tool – SpatialFilter를 입력하여 생성한다.
1.3 SplitContainer컨트롤 올리기1.3.1 [도구상자] – [컨테이너]에 존재하는 SplitContainer 컨트롤을 드래그하여 Form1에 올려 놓는다.
1.3.2 아래 그림과 같이 Panel1과 Panel2가 도시된다.
1.4 NXMapView컨트롤 올리기1.4.1 [도구상자]-[일반]에서 NXMapView를 드래그하여 각각 Panel1과 Panel2에 올려 놓는다.
1.4.2 Panel1과 Panel2에 존재하는 NXMapView컨트롤의 [부모컨테이너에서 도킹]버튼을 눌러 SplitContainer에 도킹시킨다.
. 1.4.3 또한 NXMapLayerComposites와 NXMapLayerGPU를 각각 드래그 하여 올려 놓는다.
1.4.4 [F5]키를 눌러 프로그램을 실행한다. 아래와 같이 2개의 NXMapView컨트롤이 존재하는 프로그램이 실행된다.
1.4.5 프로그램을 종료한다.1.5 영상 열기 기능1.5.1 디자인창에서 Toolbar의 [File]-[Open]을 더블 클릭하여 함수를 자동생성한다.
1.5.2 향후 사용할 멤버 변수들을 선언한다.
1.5.3 Form1생성자에 다음과 같이 객체를 생성한다. XRasterIO객체를 생성하고 NXMapLayerComposites 객체의 속성을 Visible할수 있도록 속성을 변경한다.
1.5.4 File열기 버튼을 눌렀을 때 생성될 Open 대화상자와 선택된 파일에 대한 XRSLoadFile객체를 생성하고 왼쪽 뷰 컨트롤에 도시를 수행한다.
1.5.5 왼쪽 컨트롤에 이미지를 도시하는 ShowImageOrigin함수를 구현한다. 이 함수는 3개이상의 밴드를 포함하는 영상과 그 이하인 밴드를 포함하는 영상을 RGB 모드나 Gray모드로 도시하는 코드를 포함한다. 또한, 도시되는 영상에 대해 밝기를 향상시키기 위한 Image Enhancement 기능을 구현할 수 있다.
1.6 Spatial Filter적용1.6.1 Form1 디자인에서 [Tool]-[Spatial Filter]버튼을 더블 클릭하여 Spatial Filter기능 구현을 위한 함수를 자동 생성시킨다.
1.6.2 Open된 영상에 대한 공간 필터링 수행을 위한 코드를 작성한다.
1.6.3 ShowProcessedImage 코드를 작성한다. 여기에서는 Default로 Gray로 그리는 코드를 입력하였다. 만약, 공간 필터링된 이미지를 RGB로 만들고 싶다면 ShowImageOrigin함수에서 구현하였던 것처럼 3개의 Band에 대해 각각 공간 필터링을 수행하고 NXLayerComposites객체의 모드를 RGB로 설정하여 도시하면 된다.
1.7 듀얼 뷰에 대한 동기화1.7.1 Form1의 디자인창에서 왼쪽 GPU Layer를 클릭한다.
1.7.2 [속성]-[이벤트]버튼을 누르고 OnOrthoRender를 더블 클릭하여 자동 생성 함수를 만든다.
1.7.3 [속성]-[이벤트]버튼을 누르고 OnOrthoRender를 더블 클릭하여 자동 생성 함수를 만든다.
1.7.4 nxMapLayerGPU1_OnOrthoRender함수에 동기화 할 수 있는 코드를 작성한다.
1.7.5 [F5]키를 눌러 프로그램을 실행한다. 실행된 프로그램으로부터 [File]-[Open]버튼을 눌러 다운로드 받은 “etm.xdm”을 선택한다. [Tool]-[Spatial Filter]버튼을 눌러 공간 필터링 처리를 수행한다.
1.7.6 왼쪽 컨트롤에 마우스 커서를 올리고 마우스 휠을 당기거나 밀어준다. 또한 마우스 오른쪽 클릭을 수행한 채로 끌기를 수행해 오른쪽에 있는 영상이 동기화 되는지 확인한다.
|