|
XDMBandEpipolar Class
|
XDMBandEpipolar클래스는 2장의 스테레오이미지로 부터 Epipolar이미지를 생성한다.
Inheritance Hierarchy
Namespace: Pixoneer.NXDL.NRSAssembly: NXDLrs (in NXDLrs.dll) Version: 2.0.3.38
Syntaxpublic class XDMBandEpipolar : XDMBand
The XDMBandEpipolar type exposes the following members.
Constructors
Methods | Name | Description |
---|
 | ConvPosA2E | Left 영상점에 대응하는 Epipolar 영상점의 좌표를 얻는다. |
 | ConvPosB2E | Right 영상점에 대응하는 Epipolar 영상점의 좌표를 얻는다. |
 | ConvPosE2A | Epipolar 영상점에 대응하는 Left 영상점의 좌표를 얻는다. |
 | ConvPosE2B | Epipolar 영상점에 대응하는 Right 영상점의 좌표를 얻는다. |
 | GetInputParam | Epipolar 생성을 위해 설정된 입력 변수를 얻는다. |
 | GetRPCModelA | 설정된 파라미터들로부터 계산된 Left 영상 RPC모델을 얻는다. 이 함수는 XDMBandEpipolarDEM에서 DEM을 생성하기 위해 사용된다. |
 | GetRPCModelB | 설정된 파라미터들로부터 계산된 Right 영상 얻는다. 이 함수는 XDMBandEpipolarDEM에서 DEM을 생성하기 위해 사용된다. |
 | SetInputParam | Epipolar 생성을 위한 입력 변수들을 설정한다. |
Top
Example
한 쌍의 영상과 이에 대응하는 RPC 파일을 각각 로딩한 후 결과 영상과 함께 RPC 파일을 저장한다.
XRasterIO RasterIO = new XRasterIO();
String strError = "";
if (RasterIO.Initialize(out strError) == false)
{
return;
}
String strFilePathLoad1 = "D:\\Sample\\RS_Sample\\Epipolar\\po_97258_pan_0010000.xdm";
String strFilePathLoad2 = "D:\\Sample\\RS_Sample\\Epipolar\\po_97258_pan_0000000.xdm";
XRSLoadFile xrsFileInput1 = RasterIO.LoadFile(strFilePathLoad1, out strError, false, eIOCreateXLDMode.All_NoMsg);
XRSLoadFile xrsFileInput2 = RasterIO.LoadFile(strFilePathLoad2, out strError, false, eIOCreateXLDMode.All_NoMsg);
String strRPCPathLoad1 = "D:\\Sample\\RS_Sample\\Epipolar\\po_97258_pan_0010000.rpc";
String strRPCPathLoad2 = "D:\\Sample\\RS_Sample\\Epipolar\\po_97258_pan_0000000.rpc";
XRpc smL = new XRpc();
XRpc smR = new XRpc();
smL.LoadFromRPC(strRPCPathLoad1, eSensorRPCType.Ikonos, out strError);
smR.LoadFromRPC(strRPCPathLoad2, eSensorRPCType.Ikonos, out strError);
XBandParamEpipolar InputParamL = new XBandParamEpipolar();
InputParamL.SrcBandL = xrsFileInput1.GetBandAt(0);
InputParamL.SrcBandR = xrsFileInput2.GetBandAt(0);
InputParamL.ResampleMethod = eResampleMethod.BiLinear;
InputParamL.SensorModelL = smL;
InputParamL.SensorModelR = smR;
InputParamL.HeightMin = -180;
InputParamL.HeightMax = 600;
InputParamL.LeftImageFlag = true;
XBandParamEpipolar InputParamR = new XBandParamEpipolar();
InputParamR.SrcBandL = xrsFileInput1.GetBandAt(0);
InputParamR.SrcBandR = xrsFileInput2.GetBandAt(0);
InputParamR.ResampleMethod = eResampleMethod.BiLinear;
InputParamR.SensorModelL = smL;
InputParamR.SensorModelR = smR;
InputParamR.HeightMin = -180;
InputParamR.HeightMax = 600;
InputParamR.LeftImageFlag = false;
XDMBandEpipolar bandProcessL = new XDMBandEpipolar();
XDMBandEpipolar bandProcessR = new XDMBandEpipolar();
bandProcessL.SetInputParam(ref InputParamL);
bandProcessR.SetInputParam(ref InputParamR);
XRSSaveFile fileSaveL = new XRSSaveFile();
XRSSaveFile fileSaveR = new XRSSaveFile();
XDMBand bandCastL = (XDMBand)bandProcessL;
XDMBand bandCastR = (XDMBand)bandProcessR;
fileSaveL.AddBand(ref bandCastL);
fileSaveR.AddBand(ref bandCastR);
XThread thd = null;
String strFilePathSaveL = "D:\\Sample\\Out_EpipolarLeft.xdm";
if (!RasterIO.Export(ref fileSaveL, strFilePathSaveL, "XDM", out strError, thd))
{
return;
}
String strRPCPathSaveL = "D:\\Sample\\Out_EpipolarLeft.rpc";
XRpc rpcL = bandProcessL.GetRPCModelA();
rpcL.SaveRPC(strRPCPathSaveL);
String strFilePathSaveR = "D:\\Sample\\Out_EpipolarRight.xdm";
if (!RasterIO.Export(ref fileSaveR, strFilePathSaveR, "XDM", out strError, thd))
{
return;
}
String strRPCPathSaveR = "D:\\Sample\\Out_EpipolarRight.rpc";
XRpc rpcR = bandProcessR.GetRPCModelB();
rpcR.SaveRPC(strRPCPathSaveR);
See Also