Stereo Calibrator 3D

1 개요

스테레오 캘리브레이션 및 이미지 쌍 Rectification을 수행하는 알고리즘입니다.

2 알고리즘 상세 설명

패턴이 있는 보드를 스테레오 카메라로 찍은 이미지 쌍들로 스테레오 Calibration을 진행할 수 있습니다. 사용되는 이미지 쌍의 개수가 많을수록 Calibration의 오류를 줄일 수 있습니다.
현재 Calibration에 지원하는 패턴은 체스보드, 점의 격자, 십자가 격자, 직사각형 격자입니다.
Calibration 실행 후 각 카메라의 내부 및 외부 Parameter를 얻을 수 있습니다. 이렇게 추출한 스테레오 Calibration 정보로 같은 스테레오 카메라로 찍은 이미지를 정류 및 보정할 수 있습니다.

Source Left Image Source Right Image Destination Left Model Destination Right Model
Source Image Source Image Destination Model Destination Model
Fig. Pair of Source Images and Pair of Destination Images

GUI에서 Calibration 실행 이후 각 카메라의 Parameter를 확인할 수 있습니다.

3 예제 코드

다음 코드로 기본 설정 및 Calibration 진행이 가능합니다.

// 객체 생성
CStereoCalibrator3D stereoCalibrator3D;

// 첫 입력 이미지 설정
CFLImage fliLearnImage;
stereoCalibrator3D.SetLearnImage(fliLearnImage);

// 두 번째 입력 이미지 설정
CFLImage fliLearnImage2;
stereoCalibrator3D.SetLearnImage2(fliLearnImage2);

// 결과 목표 정확도 설정
double f64OptimalSolAcc = 0.00001;
stereoCalibrator3D.SetOptimalSolutionAccuracy(f64OptimalSolAcc);

// Calibration에 사용되는 Type 설정
CStereoCalibrator3D::EGridType eGridType = CStereoCalibrator3D::EGridType_ChessBoard;
stereoCalibrator3D.SetGridType(eGridType);

// Calibrate 진행
stereoCalibrator3D.Calibrate();
// 객체 생성
CStereoCalibrator3D stereoCalibrator3D = new CStereoCalibrator3D();

// 첫 입력 이미지 설정
CFLImage fliLearnImage = new CFLImage();
stereoCalibrator3D.SetLearnImage(ref fliLearnImage);

// 두 번째 입력 이미지 설정
CFLImage fliLearnImage2 = new CFLImage();
stereoCalibrator3D.SetLearnImage2(ref fliLearnImage2);

// 결과 목표 정확도 설정
double f64OptimalSolAcc = 0.00001;
stereoCalibrator3D.SetOptimalSolutionAccuracy(f64OptimalSolAcc);

// Calibration에 사용되는 Type 설정
CStereoCalibrator3D.EGridType eGridType = CStereoCalibrator3D.EGridType.ChessBoard;
stereoCalibrator3D.SetGridType(eGridType);

// Calibrate 진행
stereoCalibrator3D.Calibrate();
# 객체 생성
stereoCalibrator3D = CStereoCalibrator3D()

# 첫 입력 이미지 설정
fliLearnImage = CFLImage()
stereoCalibrator3D.SetLearnImage(fliLearnImage)

# 두 번째 입력 이미지 설정
fliLearnImage2 = CFLImage()
stereoCalibrator3D.SetLearnImage2(fliLearnImage2)

# 결과 목표 정확도 설정
f64OptimalSolAcc = 0.00001
stereoCalibrator3D.SetOptimalSolutionAccuracy(f64OptimalSolAcc)

# Calibration에 사용되는 Type 설정
eGridType = CStereoCalibrator3D.EGridType.ChessBoard
stereoCalibrator3D.SetGridType(eGridType)

# Calibrate 진행
stereoCalibrator3D.Calibrate()

다음 코드는 Calibrate 한 모델에 각 이미지의 Grid를 얻어 오는 코드입니다.

// Grid 객체 정의
struct SGridDisplay
{
  // 이미지 번호
  int64_t i64ImageIdx;

  // 점 번호
  int64_t i64ObjectIdx;

  // 보드 정보
  CStereoCalibrator3D::SGridResult sGridData;
};

// 객체 생성
CStereoCalibrator3D stereoCalibrator3D;

// 이미지의 페이지 수 저장
int64_t i64ImagePageCount = stereoCalibrator3D.GetLearnImage()->GetPageCount();

for(int64_t i64ImgIdx = 0; i64ImgIdx < i64ImagePageCount; ++i64ImgIdx)
{
  // 보드 정보 저장
  SGridDisplay sGridDisplay1;
  SGridDisplay sGridDisplay2;
  stereoCalibrator3D.GetResultGridPoints(&sGridDisplay1.sGridData, i64ImgIdx);
  stereoCalibrator3D.GetResultGridPoints2(&sGridDisplay2.sGridData, i64ImgIdx);
  sGridDisplay1.i64ImageIdx = i64ImgIdx;
  sGridDisplay2.i64ImageIdx = i64ImgIdx;
}
// Grid 객체 정의
struct SGridDisplay
{
  // 이미지 번호
	public long i64ImageIdx;

  // 점 번호
	public long i64ObjectIdx;

  // 보드 정보
	public CStereoCalibrator3D.SGridResult sGridData;
};

// 객체 생성
CStereoCalibrator3D stereoCalibrator3D = new CStereoCalibrator3D();

// 이미지의 페이지 수 저장
long i64ImagePageCount = stereoCalibrator3D.GetLearnImage().GetPageCount();

for(long i64ImgIdx = 0; i64ImgIdx<i64ImagePageCount; ++i64ImgIdx)
{
  // 보드 정보 저장
  SGridDisplay sGridDisplay1 = new SGridDisplay();
  SGridDisplay sGridDisplay2 = new SGridDisplay();
  stereoCalibrator3D.GetResultGridPoints(ref sGridDisplay1.sGridData, i64ImgIdx);
  stereoCalibrator3D.GetResultGridPoints2(ref sGridDisplay2.sGridData, i64ImgIdx);
  sGridDisplay1.i64ImageIdx = i64ImgIdx;
  sGridDisplay2.i64ImageIdx = i64ImgIdx;
}
# Grid 객체 정의
class SGridDisplay:
	def __init__(self):
    # 이미지 번호
		self.i64ImageIdx = 0
    
    # 점 번호
		self.i64ObjectIdx = 0

    # 보드 정보
		self.sGridData = CStereoCalibrator3D.SGridResult()

# 객체 생성
stereoCalibrator3D = CStereoCalibrator3D()

# 이미지의 페이지 수 저장
i64ImagePageCount = stereoCalibrator3D.GetLearnImage().GetPageCount()

for i64ImgIdx in range(i64ImagePageCount):
  # 보드 정보 저장
  sGridDisplay1 = SGridDisplay()
  sGridDisplay2 = SGridDisplay()
  stereoCalibrator3D.GetResultGridPoints(sGridDisplay1.sGridData, i64ImgIdx)
  stereoCalibrator3D.GetResultGridPoints2(sGridDisplay2.sGridData, i64ImgIdx)
  sGridDisplay1.i64ImageIdx = i64ImgIdx
  sGridDisplay2.i64ImageIdx = i64ImgIdx

다음 코드는 Calibrate 이후 같은 카메라로 찍은 이미지를 Rectify 하는 코드입니다.

// 객체 생성
CStereoCalibrator3D stereoCalibrator3D;

// 첫 번째 Rectify 할 이미지 설정
CFLImage fliSourceImage;
stereoCalibrator3D.SetSourceImage(fliSourceImage);

// 두 번째 Rectify 할 이미지 설정
CFLImage fliSourceImage2;
stereoCalibrator3D.SetSourceImage2(fliSourceImage2);

// 첫 번째 결과 이미지 설정
CFLImage fliDestinationImage;
stereoCalibrator3D.SetDestinationImage(fliDestinationImage);

// 두 번째 결과 이미지 설정
CFLImage fliDestinationImage2;
stereoCalibrator3D.SetDestinationImage2(fliDestinationImage2);

// Batch Processing 설정
bool bBatchProcessing = false;
stereoCalibrator3D.EnableBatchProcessing(bBatchProcessing);

// Interpolation Method 설정
EInterpolationMethod eInterMethod = EInterpolationMethod_Bicubic;
stereoCalibrator3D.SetInterpolationMethod(eInterMethod);

// 알고리즘 실행
stereoCalibrator3D.Execute();
// 객체 생성
CStereoCalibrator3D stereoCalibrator3D = new CStereoCalibrator3D();

// 첫 번째 Rectify 할 이미지 설정
CFLImage fliSourceImage = new CFLImage();
stereoCalibrator3D.SetSourceImage(ref fliSourceImage);

// 두 번째 Rectify 할 이미지 설정
CFLImage fliSourceImage2 = new CFLImage();
stereoCalibrator3D.SetSourceImage2(ref fliSourceImage2);

// 첫 번째 결과 이미지 설정
CFLImage fliDestinationImage = new CFLImage();
stereoCalibrator3D.SetDestinationImage(ref fliDestinationImage);

// 두 번째 결과 이미지 설정
CFLImage fliDestinationImage2 = new CFLImage();
stereoCalibrator3D.SetDestinationImage2(ref fliDestinationImage2);

// Batch Processing 설정
bool bBatchProcessing = false;
stereoCalibrator3D.EnableBatchProcessing(bBatchProcessing);

// Interpolation Method 설정
EInterpolationMethod eInterMethod = EInterpolationMethod.Bicubic;
stereoCalibrator3D.SetInterpolationMethod(eInterMethod);

// 알고리즘 실행
stereoCalibrator3D.Execute();
# 객체 생성
stereoCalibrator3D = CStereoCalibrator3D()

# 첫 번째 Rectify 할 이미지 설정
fliSourceImage = CFLImage()
stereoCalibrator3D.SetSourceImage(fliSourceImage)

# 두 번째 Rectify 할 이미지 설정
fliSourceImage2 = CFLImage()
stereoCalibrator3D.SetSourceImage2(fliSourceImage2)

# 첫 번째 결과 이미지 설정
fliDestinationImage = CFLImage()
stereoCalibrator3D.SetDestinationImage(fliDestinationImage)

# 두 번째 결과 이미지 설정
fliDestinationImage2 = CFLImage()
stereoCalibrator3D.SetDestinationImage2(fliDestinationImage2)

# Batch Processing 설정
bBatchProcessing = False
stereoCalibrator3D.EnableBatchProcessing(bBatchProcessing)

# Interpolation Method 설정
eInterMethod = EInterpolationMethod.Bicubic
stereoCalibrator3D.SetInterpolationMethod(eInterMethod)

# 알고리즘 실행
stereoCalibrator3D.Execute()

다음 코드로 Calibrate 한 Parameter를 사용하여 로드가 가능합니다.

// 객체 생성
CStereoCalibrator3D stereoCalibrator3D;

// 데이터 파일 위치
CFLString<wchar_t> cStrLoad;

// 데이터 불러오기
stereoCalibrator3D.Load(cStrLoad);
// 객체 생성
CStereoCalibrator3D stereoCalibrator3D = new CStereoCalibrator3D();

// 데이터 파일 위치
string cStrLoad = "";

// 데이터 불러오기
stereoCalibrator3D.Load(cStrLoad);
# 객체 생성
stereoCalibrator3D = CStereoCalibrator3D()

# 데이터 파일 위치
cStrLoad = ""

# 데이터 불러오기
stereoCalibrator3D.Load(cStrLoad)

4 추가 함수 설명

Calibration 전 파라미터 설정 및 가져오기

// 객체 생성
CStereoCalibrator3D stereoCalibrator3D;

// 입력되는 이미지 Type
CStereoCalibrator3D::EGridType eGridType = CStereoCalibrator3D::EGridType_ChessBoard;

// 체스보드 타입
eGridType = CStereoCalibrator3D::EGridType_ChessBoard;
// 격자 점판 타입
eGridType = CStereoCalibrator3D::EGridType_GridOfDots;
// 격자 십자가 타입
eGridType = CStereoCalibrator3D::EGridType_GridOfCross;
// 격자 사각형 타입
eGridType = CStereoCalibrator3D::EGridType_GridOfRectangle;

CStereoCalibrator3D::EGridType eSetGridType = eGridType;

// Calibration 이미지 형식을 설정합니다.
stereoCalibrator3D.SetGridType(eSetGridType);

CStereoCalibrator3D::EGridType eGetGridType = eGridType;

// Calibration 이미지 형식을 가져옵니다.
eGetGridType = stereoCalibrator3D.GetGridType();
// 객체 생성
CStereoCalibrator3D stereoCalibrator3D = new CStereoCalibrator3D();

// 입력되는 이미지 Type
CStereoCalibrator3D.EGridType eGridType = CStereoCalibrator3D.EGridType.ChessBoard;

// 체스보드 타입
eGridType = CStereoCalibrator3D.EGridType.ChessBoard;
// 격자 점판 타입
eGridType = CStereoCalibrator3D.EGridType.GridOfDots;
// 격자 십자가 타입
eGridType = CStereoCalibrator3D.EGridType.GridOfCross;
// 격자 사각형 타입
eGridType = CStereoCalibrator3D.EGridType.GridOfRectangle;

CStereoCalibrator3D.EGridType eSetGridType = eGridType;

// Calibration 이미지 형식을 설정합니다.
stereoCalibrator3D.SetGridType(eSetGridType);

CStereoCalibrator3D.EGridType eGetGridType = eGridType;

// Calibration 이미지 형식을 가져옵니다.
eGetGridType = stereoCalibrator3D.GetGridType();
# 객체 생성
stereoCalibrator3D = CStereoCalibrator3D()

# 입력되는 이미지 Type
eGridType = CStereoCalibrator3D.EGridType.ChessBoard

# 체스보드 타입
eGridType = CStereoCalibrator3D.EGridType.ChessBoard
# 격자 점판 타입
eGridType = CStereoCalibrator3D.EGridType.GridOfDots
# 격자 십자가 타입
eGridType = CStereoCalibrator3D.EGridType.GridOfCross
# 격자 사각형 타입
eGridType = CStereoCalibrator3D.EGridType.GridOfRectangle

eSetGridType = eGridType

# Calibration 이미지 형식을 설정합니다.
stereoCalibrator3D.SetGridType(eSetGridType)

eGetGridType = eGridType

# Calibration 이미지 형식을 가져옵니다.
eGetGridType = stereoCalibrator3D.GetGridType()

CStereoCalibrator3D::EGridType은 CStereoCalibrator3D 알고리즘의 Calibration에 사용되는 패턴의 설정이 저장됩니다.
함수 SetGridType으로 입력 패턴의 설정이 가능합니다.
함수 GetGridType으로 설정된 입력 패턴을 가져올 수 있습니다.
잘못된 패턴을 설정할 때 함수가 동작하지 않거나 결과 오류가 발생할 확률이 높습니다.

Default: EGridType_ChessBoard

// 객체 생성
CStereoCalibrator3D stereoCalibrator3D;

// 설정된 Optimal Solution Accuracy를 가져옵니다.
double f64GetOptimalSolutionAcc = stereoCalibrator3D.GetOptimalSolutionAccuracy();
// 객체 생성
CStereoCalibrator3D stereoCalibrator3D = new CStereoCalibrator3D();

// 설정된 Optimal Solution Accuracy를 가져옵니다.
double f64GetOptimalSolutionAcc = stereoCalibrator3D.GetOptimalSolutionAccuracy();
# 객체 생성
stereoCalibrator3D = CStereoCalibrator3D()

# 설정된 Optimal Solution Accuracy를 가져옵니다.
f64GetOptimalSolutionAcc = stereoCalibrator3D.GetOptimalSolutionAccuracy()

함수 GetOptimalSolutionAccuracy로 설정된 Optimal Solution Accuracy를 가져올 수 있습니다.

// 객체 생성
CStereoCalibrator3D stereoCalibrator3D;

// 보정 전 좌표
CFLPoint<double> cFLPointDInput;

// 보정 후 좌표
CFLPoint<double> cFLPointDOutput;

  // 카메라1을 기준으로 보정되지 않은 좌표 값 변환
stereoCalibrator3D.ConvertCoordinate(cFLPointDInput, cFLPointDOutput);

// 카메라2을 기준으로 보정되지 않은 좌표 값 변환
stereoCalibrator3D.ConvertCoordinate2(cFLPointDInput, cFLPointDOutput);
// 객체 생성
CStereoCalibrator3D stereoCalibrator3D = new CStereoCalibrator3D();

// 보정 전 좌표
CFLPoint<double> cFLPointDInput = new CFLPoint<double>();

// 보정 후 좌표
CFLPoint<double> cFLPointDOutput = new CFLPoint<double>();

// 카메라1을 기준으로 보정되지 않은 좌표 값 변환
stereoCalibrator3D.ConvertCoordinate(cFLPointDInput, ref cFLPointDOutput);

// 카메라2을 기준으로 보정되지 않은 좌표 값 변환
stereoCalibrator3D.ConvertCoordinate2(cFLPointDInput, ref cFLPointDOutput);
# 객체 생성
stereoCalibrator3D = CStereoCalibrator3D()

# 보정 전 좌표
cFLPointDInput = CFLPoint[Double]()

# 보정 후 좌표
cFLPointDOutput = CFLPoint[Double]()

# 카메라1을 기준으로 보정되지 않은 좌표 값 변환
stereoCalibrator3D.ConvertCoordinate(cFLPointDInput, cFLPointDOutput)

# 카메라2을 기준으로 보정되지 않은 좌표 값 변환
stereoCalibrator3D.ConvertCoordinate2(cFLPointDInput, cFLPointDOutput)

함수 ConvertCoordinate, ConvertCoordinate2로 보정된 좌푯값이 보정되지 않은 좌푯값으로 반환합니다.
잘못된 패턴을 설정할 때 함수가 동작하지 않거나 결과 오류가 발생할 확률이 높습니다.

// 객체 생성
CStereoCalibrator3D stereoCalibrator3D;

// Calibrate의 여부 확인
bool bCalib = stereoCalibrator3D.IsCalibrated();
// 객체 생성
CStereoCalibrator3D stereoCalibrator3D = new CStereoCalibrator3D();

// Calibrate의 여부 확인
bool bCalib = stereoCalibrator3D.IsCalibrated();
# 객체 생성
stereoCalibrator3D = CStereoCalibrator3D()

# Calibrate의 여부 확인
bCalib = stereoCalibrator3D.IsCalibrated()

함수 IsCalibrated으로 Calibrate 실행의 여부를 확인할 수 있습니다.
해당 변수가 False인 경우 Execute 실행 시 오류를 반환합니다.

// 객체 생성
CStereoCalibrator3D stereoCalibrator3D;

// Calibrate의 Reprojection Error 출력
double f64ResultReprojectErr = stereoCalibrator3D.GetResultReProjectionError();
// 객체 생성
CStereoCalibrator3D stereoCalibrator3D = new CStereoCalibrator3D();

// Calibrate의 Reprojection Error 출력
double f64ResultReprojectErr = stereoCalibrator3D.GetResultReProjectionError();
# 객체 생성
stereoCalibrator3D = CStereoCalibrator3D()

# Calibrate의 Reprojection Error 출력
f64ResultReprojectErr = stereoCalibrator3D.GetResultReProjectionError()

함수 GetResultReProjectionError로 재투영 오류 값을 확인할 수 있습니다.

Execute 전 파라미터 설정 및 가져오기

// 객체 생성
CStereoCalibrator3D stereoCalibrator3D;

// Interpolation Method 변수
EInterpolationMethod eInterMethod = EInterpolationMethod_Bilinear;

// 쌍선형(Bilinear) 보간법
eInterMethod = EInterpolationMethod_Bilinear;
// 최근접(Nearest neighbor) 보간법
eInterMethod = EInterpolationMethod_NearestNeighbor;
// 쌍입방(Bicubic) 보간법
eInterMethod = EInterpolationMethod_Bicubic;
// Lanczos 보간법
eInterMethod = EInterpolationMethod_Lanczos;

// 보간법을 설정합니다.
stereoCalibrator3D.SetInterpolationMethod(eInterMethod);

// 설정된 보간법을 가져옵니다.
EInterpolationMethod eGetInterMethod = stereoCalibrator3D.GetInterpolationMethod();
// 객체 생성
CStereoCalibrator3D stereoCalibrator3D = new CStereoCalibrator3D();

// Interpolation Method 변수
EInterpolationMethod eInterMethod = EInterpolationMethod.Bilinear;

// 쌍선형(Bilinear) 보간법
eInterMethod = EInterpolationMethod.Bilinear;
// 최근접(Nearest neighbor) 보간법
eInterMethod = EInterpolationMethod.NearestNeighbor;
// 쌍입방(Bicubic) 보간법
eInterMethod = EInterpolationMethod.Bicubic;
// Lanczos 보간법
eInterMethod = EInterpolationMethod.Lanczos;

// 보간법을 설정합니다.
stereoCalibrator3D.SetInterpolationMethod(eInterMethod);

// 설정된 보간법을 가져옵니다.
EInterpolationMethod eGetInterMethod = stereoCalibrator3D.GetInterpolationMethod();
# 객체 생성
stereoCalibrator3D = CStereoCalibrator3D()

# Interpolation Method 변수
eInterMethod = EInterpolationMethod.Bilinear

# 쌍선형(Bilinear) 보간법
eInterMethod = EInterpolationMethod.Bilinear
# 최근접(Nearest neighbor) 보간법
eInterMethod = EInterpolationMethod.NearestNeighbor
# 쌍입방(Bicubic) 보간법
eInterMethod = EInterpolationMethod.Bicubic
# Lanczos 보간법
eInterMethod = EInterpolationMethod.Lanczos

# 보간법을 설정합니다.
stereoCalibrator3D.SetInterpolationMethod(eInterMethod)

# 설정된 보간법을 가져옵니다.
eGetInterMethod = stereoCalibrator3D.GetInterpolationMethod()

함수 SetInterpolationMethod으로 Optimal Solution Accuracy의 설정이 가능합니다.
함수 GetInterpolationMethod으로 설정된 Optimal Solution Accuracy를 가져올 수 있습니다.
잘못된 패턴을 설정할 때 함수가 동작하지 않거나 결과 오류가 발생할 확률이 높습니다.

// 객체 생성
CStereoCalibrator3D stereoCalibrator3D;

// 카메라 Intrinsic Parameter 변수
CStereoCalibrator3D::SIntrinsicParameters sIntrinsicParam;

// 카메라의 X 초점 거리
double f64FocalLengthX = 1200;
// 카메라의 Y 초점 거리
double f64FocalLengthY = 1200;
// 카메라의 X 주점
double f64PrincipalPointX = 960;
// 카메라의 Y 주점
double f64PrincipalPointY = 540;
// 비대칭 계수
double f64Skew = 0;

// 카메라의 X 초점 거리 설정
sIntrinsicParam.f64FocalLengthX = f64FocalLengthX;
// 카메라의 Y 초점 거리 설정
sIntrinsicParam.f64FocalLengthY = f64FocalLengthY;
// 카메라의 X 주점 설정
sIntrinsicParam.f64PrincipalPointX = f64PrincipalPointX;
// 카메라의 Y 주점 설정
sIntrinsicParam.f64PrincipalPointY = f64PrincipalPointY;
// 비대칭 계수 설정
sIntrinsicParam.f64Skew = f64Skew;

// 카메라1 Intrinsic Parameters을 설정합니다.
stereoCalibrator3D.SetIntrinsicParameters(sIntrinsicParam);
// 카메라2 Intrinsic Parameters을 설정합니다.
stereoCalibrator3D.SetIntrinsicParameters2(sIntrinsicParam);

// 카메라1 Intrinsic Parameters을 가져옵니다.
CStereoCalibrator3D::SIntrinsicParameters sGetIntrinsicParam1 = stereoCalibrator3D.GetResultIntrinsicParameters();
// 카메라2 Intrinsic Parameters을 가져옵니다.
CStereoCalibrator3D::SIntrinsicParameters sGetIntrinsicParam2 = stereoCalibrator3D.GetResultIntrinsicParameters2();
// 객체 생성
CStereoCalibrator3D stereoCalibrator3D = new CStereoCalibrator3D();

// 카메라 Intrinsic Parameter 변수
CStereoCalibrator3D.SIntrinsicParameters sIntrinsicParam = new CStereoCalibrator3D.SIntrinsicParameters();

// 카메라의 X 초점 거리
double f64FocalLengthX = 1200;
// 카메라의 Y 초점 거리
double f64FocalLengthY = 1200;
// 카메라의 X 주점
double f64PrincipalPointX = 960;
// 카메라의 Y 주점
double f64PrincipalPointY = 540;
// 비대칭 계수
double f64Skew = 0;

// 카메라의 X 초점 거리 설정
sIntrinsicParam.f64FocalLengthX = f64FocalLengthX;
// 카메라의 Y 초점 거리 설정
sIntrinsicParam.f64FocalLengthY = f64FocalLengthY;
// 카메라의 X 주점 설정
sIntrinsicParam.f64PrincipalPointX = f64PrincipalPointX;
// 카메라의 Y 주점 설정
sIntrinsicParam.f64PrincipalPointY = f64PrincipalPointY;
// 비대칭 계수 설정
sIntrinsicParam.f64Skew = f64Skew;

// 카메라1 Intrinsic Parameters을 설정합니다.
stereoCalibrator3D.SetIntrinsicParameters(sIntrinsicParam);
// 카메라2 Intrinsic Parameters을 설정합니다.
stereoCalibrator3D.SetIntrinsicParameters2(sIntrinsicParam);

// 카메라1 Intrinsic Parameters을 가져옵니다.
CStereoCalibrator3D.SIntrinsicParameters sGetIntrinsicParam1 = stereoCalibrator3D.GetResultIntrinsicParameters();
// 카메라2 Intrinsic Parameters을 가져옵니다.
CStereoCalibrator3D.SIntrinsicParameters sGetIntrinsicParam2 = stereoCalibrator3D.GetResultIntrinsicParameters2();
# 객체 생성
stereoCalibrator3D = CStereoCalibrator3D()

# 카메라 Intrinsic Parameter 변수
sIntrinsicParam = CStereoCalibrator3D.SIntrinsicParameters()

# 카메라의 X 초점 거리
f64FocalLengthX = 1200
# 카메라의 Y 초점 거리
f64FocalLengthY = 1200
# 카메라의 X 주점
f64PrincipalPointX = 960
# 카메라의 Y 주점
f64PrincipalPointY = 540
# 비대칭 계수
f64Skew = 0

# 카메라의 X 초점 거리 설정
sIntrinsicParam.f64FocalLengthX = f64FocalLengthX
# 카메라의 Y 초점 거리 설정
sIntrinsicParam.f64FocalLengthY = f64FocalLengthY
# 카메라의 X 주점 설정
sIntrinsicParam.f64PrincipalPointX = f64PrincipalPointX
# 카메라의 Y 주점 설정
sIntrinsicParam.f64PrincipalPointY = f64PrincipalPointY
# 비대칭 계수 설정
sIntrinsicParam.f64Skew = f64Skew

# 카메라1 Intrinsic Parameters을 설정합니다.
stereoCalibrator3D.SetIntrinsicParameters(sIntrinsicParam)
# 카메라2 Intrinsic Parameters을 설정합니다.
stereoCalibrator3D.SetIntrinsicParameters2(sIntrinsicParam)

# 카메라1 Intrinsic Parameters을 가져옵니다.
sGetIntrinsicParam1 = stereoCalibrator3D.GetResultIntrinsicParameters()
# 카메라2 Intrinsic Parameters을 가져옵니다.
sGetIntrinsicParam2 = stereoCalibrator3D.GetResultIntrinsicParameters2()

함수 SetIntrinsicParameters, SetIntrinsicParameters2로 두 카메라의 Intrinsic Parameter의 설정이 가능합니다.
함수 GetResultIntrinsicParameters, GetResultIntrinsicParameters2로 설정된 두 카메라의 Intrinsic Parameter를 가져올 수 있습니다.
잘못된 패턴을 설정할 때 함수가 동작하지 않거나 결과 오류가 발생할 확률이 높습니다.

// 객체 생성
CStereoCalibrator3D stereoCalibrator3D;

// 카메라 Distortion Coefficients 변수
CStereoCalibrator3D::SDistortionCoefficients sDistortionCoeff;

// 카메라의 Distortion 계수 K1
double f64K1 = 0;
// 카메라의 Distortion 계수 K2
double f64K2 = 0;
// 카메라의 Distortion 계수 K3
double f64K3 = 0;
// 카메라의 Distortion 계수 K4
double f64K4 = 0;
// 카메라의 Distortion 계수 K5
double f64K5 = 0;
// 카메라의 Distortion 계수 K6
double f64K6 = 0;
// 카메라의 Distortion 계수 P1
double f64P1 = 0;
// 카메라의 Distortion 계수 P2
double f64P2 = 0;
// 카메라의 Distortion 계수 S1
double f64S1 = 0;
// 카메라의 Distortion 계수 S2
double f64S2 = 0;
// 카메라의 Distortion 계수 S3
double f64S3 = 0;
// 카메라의 Distortion 계수 S4
double f64S4 = 0;
// 카메라의 Distortion Coefficients Gx
double f64Gx = 0;
// 카메라의 Distortion Coefficients Gy
double f64Gy = 0;

// 카메라의 Distortion 계수 K1 설정
sDistortionCoeff.f64K1 = f64K1;
// 카메라의 Distortion 계수 K2 설정
sDistortionCoeff.f64K2 = f64K2;
// 카메라의 Distortion 계수 K3 설정
sDistortionCoeff.f64K3 = f64K3;
// 카메라의 Distortion 계수 K4 설정
sDistortionCoeff.f64K4 = f64K4;
// 카메라의 Distortion 계수 K5 설정
sDistortionCoeff.f64K5 = f64K5;
// 카메라의 Distortion 계수 K6 설정
sDistortionCoeff.f64K6 = f64K6;
// 카메라의 Distortion 계수 P1 설정
sDistortionCoeff.f64P1 = f64P1;
// 카메라의 Distortion 계수 P2 설정
sDistortionCoeff.f64P2 = f64P2;
// 카메라의 Distortion 계수 S1 설정
sDistortionCoeff.f64S1 = f64S1;
// 카메라의 Distortion 계수 S2 설정
sDistortionCoeff.f64S2 = f64S2;
// 카메라의 Distortion 계수 S3 설정
sDistortionCoeff.f64S3 = f64S3;
// 카메라의 Distortion 계수 S4 설정
sDistortionCoeff.f64S4 = f64S4;
// 카메라의 Distortion Coefficients Gx 설정
sDistortionCoeff.f64Gx = f64Gx;
// 카메라의 Distortion Coefficients Gy 설정
sDistortionCoeff.f64Gy = f64Gy;

// 카메라1 Distortion 계수을 설정합니다.
stereoCalibrator3D.SetDistortionCoefficients(sDistortionCoeff);
// 카메라2 Distortion 계수을 설정합니다.
stereoCalibrator3D.SetDistortionCoefficients2(sDistortionCoeff);

// 카메라1 Distortion 계수을 가져옵니다.
CStereoCalibrator3D::SDistortionCoefficients sGetDistortionCoeff1 = stereoCalibrator3D.GetResultDistortionCoefficients();
// 카메라2 Distortion 계수을 가져옵니다.
CStereoCalibrator3D::SDistortionCoefficients sGetDistortionCoeff2 = stereoCalibrator3D.GetResultDistortionCoefficients2();
// 객체 생성
CStereoCalibrator3D stereoCalibrator3D = new CStereoCalibrator3D();

// 카메라 Distortion Coefficients 변수
CStereoCalibrator3D.SDistortionCoefficients sDistortionCoeff = new CStereoCalibrator3D.SDistortionCoefficients();

// 카메라의 Distortion 계수 K1
double f64K1 = 0;
// 카메라의 Distortion 계수 K2
double f64K2 = 0;
// 카메라의 Distortion 계수 K3
double f64K3 = 0;
// 카메라의 Distortion 계수 K4
double f64K4 = 0;
// 카메라의 Distortion 계수 K5
double f64K5 = 0;
// 카메라의 Distortion 계수 K6
double f64K6 = 0;
// 카메라의 Distortion 계수 P1
double f64P1 = 0;
// 카메라의 Distortion 계수 P2
double f64P2 = 0;
// 카메라의 Distortion 계수 S1
double f64S1 = 0;
// 카메라의 Distortion 계수 S2
double f64S2 = 0;
// 카메라의 Distortion 계수 S3
double f64S3 = 0;
// 카메라의 Distortion 계수 S4
double f64S4 = 0;
// 카메라의 Distortion Coefficients Gx
double f64Gx = 0;
// 카메라의 Distortion Coefficients Gy
double f64Gy = 0;

// 카메라의 Distortion 계수 K1 설정
sDistortionCoeff.f64K1 = f64K1;
// 카메라의 Distortion 계수 K2 설정
sDistortionCoeff.f64K2 = f64K2;
// 카메라의 Distortion 계수 K3 설정
sDistortionCoeff.f64K3 = f64K3;
// 카메라의 Distortion 계수 K4 설정
sDistortionCoeff.f64K4 = f64K4;
// 카메라의 Distortion 계수 K5 설정
sDistortionCoeff.f64K5 = f64K5;
// 카메라의 Distortion 계수 K6 설정
sDistortionCoeff.f64K6 = f64K6;
// 카메라의 Distortion 계수 P1 설정
sDistortionCoeff.f64P1 = f64P1;
// 카메라의 Distortion 계수 P2 설정
sDistortionCoeff.f64P2 = f64P2;
// 카메라의 Distortion 계수 S1 설정
sDistortionCoeff.f64S1 = f64S1;
// 카메라의 Distortion 계수 S2 설정
sDistortionCoeff.f64S2 = f64S2;
// 카메라의 Distortion 계수 S3 설정
sDistortionCoeff.f64S3 = f64S3;
// 카메라의 Distortion 계수 S4 설정
sDistortionCoeff.f64S4 = f64S4;
// 카메라의 Distortion Coefficients Gx 설정
sDistortionCoeff.f64Gx = f64Gx;
// 카메라의 Distortion Coefficients Gy 설정
sDistortionCoeff.f64Gy = f64Gy;

// 카메라1 Distortion 계수을 설정합니다.
stereoCalibrator3D.SetDistortionCoefficients(sDistortionCoeff);
// 카메라2 Distortion 계수을 설정합니다.
stereoCalibrator3D.SetDistortionCoefficients2(sDistortionCoeff);

// 카메라1 Distortion 계수을 가져옵니다.
CStereoCalibrator3D.SDistortionCoefficients sGetDistortionCoeff1 = stereoCalibrator3D.GetResultDistortionCoefficients();
// 카메라2 Distortion 계수을 가져옵니다.
CStereoCalibrator3D.SDistortionCoefficients sGetDistortionCoeff2 = stereoCalibrator3D.GetResultDistortionCoefficients2();
# 객체 생성
stereoCalibrator3D = CStereoCalibrator3D()

# 카메라 Distortion Coefficients 변수
sDistortionCoeff = CStereoCalibrator3D.SDistortionCoefficients()

# 카메라의 Distortion 계수 K1
f64K1 = 0
# 카메라의 Distortion 계수 K2
f64K2 = 0
# 카메라의 Distortion 계수 K3
f64K3 = 0
# 카메라의 Distortion 계수 K4
f64K4 = 0
# 카메라의 Distortion 계수 K5
f64K5 = 0
# 카메라의 Distortion 계수 K6
f64K6 = 0
# 카메라의 Distortion 계수 P1
f64P1 = 0
# 카메라의 Distortion 계수 P2
f64P2 = 0
# 카메라의 Distortion 계수 S1
f64S1 = 0
# 카메라의 Distortion 계수 S2
f64S2 = 0
# 카메라의 Distortion 계수 S3
f64S3 = 0
# 카메라의 Distortion 계수 S4
f64S4 = 0
# 카메라의 Distortion Coefficients Gx
f64Gx = 0
# 카메라의 Distortion Coefficients Gy
f64Gy = 0

# 카메라의 Distortion 계수 K1 설정
sDistortionCoeff.f64K1 = f64K1
# 카메라의 Distortion 계수 K2 설정
sDistortionCoeff.f64K2 = f64K2
# 카메라의 Distortion 계수 K3 설정
sDistortionCoeff.f64K3 = f64K3
# 카메라의 Distortion 계수 K4 설정
sDistortionCoeff.f64K4 = f64K4
# 카메라의 Distortion 계수 K5 설정
sDistortionCoeff.f64K5 = f64K5
# 카메라의 Distortion 계수 K6 설정
sDistortionCoeff.f64K6 = f64K6
# 카메라의 Distortion 계수 P1 설정
sDistortionCoeff.f64P1 = f64P1
# 카메라의 Distortion 계수 P2 설정
sDistortionCoeff.f64P2 = f64P2
# 카메라의 Distortion 계수 S1 설정
sDistortionCoeff.f64S1 = f64S1
# 카메라의 Distortion 계수 S2 설정
sDistortionCoeff.f64S2 = f64S2
# 카메라의 Distortion 계수 S3 설정
sDistortionCoeff.f64S3 = f64S3
# 카메라의 Distortion 계수 S4 설정
sDistortionCoeff.f64S4 = f64S4
# 카메라의 Distortion Coefficients Gx 설정
sDistortionCoeff.f64Gx = f64Gx
# 카메라의 Distortion Coefficients Gy 설정
sDistortionCoeff.f64Gy = f64Gy

# 카메라1 Distortion 계수을 설정합니다.
stereoCalibrator3D.SetDistortionCoefficients(sDistortionCoeff)
# 카메라2 Distortion 계수을 설정합니다.
stereoCalibrator3D.SetDistortionCoefficients2(sDistortionCoeff)

# 카메라1 Distortion 계수을 가져옵니다.
sGetDistortionCoeff1 = stereoCalibrator3D.GetResultDistortionCoefficients()
# 카메라2 Distortion 계수을 가져옵니다.
sGetDistortionCoeff2 = stereoCalibrator3D.GetResultDistortionCoefficients2()

함수 SetDistortionCoefficients, SetDistortionCoefficients2로 두 카메라의 Distortion 계수의 설정이 가능합니다.
함수 GetResultDistortionCoefficients, GetResultDistortionCoefficients2로 설정된 두 카메라의 Distortion 계수를 가져올 수 있습니다.
잘못된 패턴을 설정할 때 함수가 동작하지 않거나 결과 오류가 발생할 확률이 높습니다.

// 객체 생성
CStereoCalibrator3D stereoCalibrator3D;

// 카메라 Rotation Parameters 변수
CStereoCalibrator3D::SRotationParameters sRotParam;

// 카메라의 Rotation Parameters R0
double f64R0 = 1;
// 카메라의 Rotation Parameters R1
double f64R1 = 0;
// 카메라의 Rotation Parameters R2
double f64R2 = 0;
// 카메라의 Rotation Parameters R3
double f64R3 = 0;
// 카메라의 Rotation Parameters R4
double f64R4 = 1;
// 카메라의 Rotation Parameters R5
double f64R5 = 0;
// 카메라의 Rotation Parameters R6
double f64R6 = 0;
// 카메라의 Rotation Parameters R7
double f64R7 = 0;
// 카메라의 Rotation Parameters R8
double f64R8 = 1;

// 카메라의 Rotation Parameters R0 설정
sRotParam.f64R0 = f64R0;
// 카메라의 Rotation Parameters R1 설정
sRotParam.f64R1 = f64R1;
// 카메라의 Rotation Parameters R2 설정
sRotParam.f64R2 = f64R2;
// 카메라의 Rotation Parameters R3 설정
sRotParam.f64R3 = f64R3;
// 카메라의 Rotation Parameters R4 설정
sRotParam.f64R4 = f64R4;
// 카메라의 Rotation Parameters R5 설정
sRotParam.f64R5 = f64R5;
// 카메라의 Rotation Parameters R6 설정
sRotParam.f64R6 = f64R6;
// 카메라의 Rotation Parameters R7 설정
sRotParam.f64R7 = f64R7;
// 카메라의 Rotation Parameters R8 설정
sRotParam.f64R8 = f64R8;

// 카메라1 Rotation Parameters을 설정합니다.
stereoCalibrator3D.SetRotationParameters(sRotParam);
// 카메라2 Rotation Parameters을 설정합니다.
stereoCalibrator3D.SetRotationParameters2(sRotParam);

// 카메라1 Rotation Parameters을 가져옵니다.
CStereoCalibrator3D::SRotationParameters sGetRotParam1 = stereoCalibrator3D.GetResultRotationParameters();
// 카메라2 Rotation Parameters을 가져옵니다.
CStereoCalibrator3D::SRotationParameters sGetRotParam2 = stereoCalibrator3D.GetResultRotationParameters2();
// 객체 생성
CStereoCalibrator3D stereoCalibrator3D = new CStereoCalibrator3D();

// 카메라 Rotation Parameters 변수
CStereoCalibrator3D.SRotationParameters sRotParam = new CStereoCalibrator3D.SRotationParameters();

// 카메라의 Rotation Parameters R0
double f64R0 = 1;
// 카메라의 Rotation Parameters R1
double f64R1 = 0;
// 카메라의 Rotation Parameters R2
double f64R2 = 0;
// 카메라의 Rotation Parameters R3
double f64R3 = 0;
// 카메라의 Rotation Parameters R4
double f64R4 = 1;
// 카메라의 Rotation Parameters R5
double f64R5 = 0;
// 카메라의 Rotation Parameters R6
double f64R6 = 0;
// 카메라의 Rotation Parameters R7
double f64R7 = 0;
// 카메라의 Rotation Parameters R8
double f64R8 = 1;

// 카메라의 Rotation Parameters R0 설정
sRotParam.f64R0 = f64R0;
// 카메라의 Rotation Parameters R1 설정
sRotParam.f64R1 = f64R1;
// 카메라의 Rotation Parameters R2 설정
sRotParam.f64R2 = f64R2;
// 카메라의 Rotation Parameters R3 설정
sRotParam.f64R3 = f64R3;
// 카메라의 Rotation Parameters R4 설정
sRotParam.f64R4 = f64R4;
// 카메라의 Rotation Parameters R5 설정
sRotParam.f64R5 = f64R5;
// 카메라의 Rotation Parameters R6 설정
sRotParam.f64R6 = f64R6;
// 카메라의 Rotation Parameters R7 설정
sRotParam.f64R7 = f64R7;
// 카메라의 Rotation Parameters R8 설정
sRotParam.f64R8 = f64R8;

// 카메라1 Rotation Parameters을 설정합니다.
stereoCalibrator3D.SetRotationParameters(sRotParam);
// 카메라2 Rotation Parameters을 설정합니다.
stereoCalibrator3D.SetRotationParameters2(sRotParam);

// 카메라1 Rotation Parameters을 가져옵니다.
CStereoCalibrator3D.SRotationParameters sGetRotParam1 = stereoCalibrator3D.GetResultRotationParameters();
// 카메라2 Rotation Parameters을 가져옵니다.
CStereoCalibrator3D.SRotationParameters sGetRotParam2 = stereoCalibrator3D.GetResultRotationParameters2();
# 객체 생성
stereoCalibrator3D = CStereoCalibrator3D()

# 카메라 Rotation Parameters 변수
sRotParam = CStereoCalibrator3D.SRotationParameters()

# 카메라의 Rotation Parameters R0
f64R0 = 1
# 카메라의 Rotation Parameters R1
f64R1 = 0
# 카메라의 Rotation Parameters R2
f64R2 = 0
# 카메라의 Rotation Parameters R3
f64R3 = 0
# 카메라의 Rotation Parameters R4
f64R4 = 1
# 카메라의 Rotation Parameters R5
f64R5 = 0
# 카메라의 Rotation Parameters R6
f64R6 = 0
# 카메라의 Rotation Parameters R7
f64R7 = 0
# 카메라의 Rotation Parameters R8
f64R8 = 1

# 카메라의 Rotation Parameters R0 설정
sRotParam.f64R0 = f64R0
# 카메라의 Rotation Parameters R1 설정
sRotParam.f64R1 = f64R1
# 카메라의 Rotation Parameters R2 설정
sRotParam.f64R2 = f64R2
# 카메라의 Rotation Parameters R3 설정
sRotParam.f64R3 = f64R3
# 카메라의 Rotation Parameters R4 설정
sRotParam.f64R4 = f64R4
# 카메라의 Rotation Parameters R5 설정
sRotParam.f64R5 = f64R5
# 카메라의 Rotation Parameters R6 설정
sRotParam.f64R6 = f64R6
# 카메라의 Rotation Parameters R7 설정
sRotParam.f64R7 = f64R7
# 카메라의 Rotation Parameters R8 설정
sRotParam.f64R8 = f64R8

# 카메라1 Rotation Parameters을 설정합니다.
stereoCalibrator3D.SetRotationParameters(sRotParam)
# 카메라2 Rotation Parameters을 설정합니다.
stereoCalibrator3D.SetRotationParameters2(sRotParam)

# 카메라1 Rotation Parameters을 가져옵니다.
sGetRotParam1 = stereoCalibrator3D.GetResultRotationParameters()
# 카메라2 Rotation Parameters을 가져옵니다.
sGetRotParam2 = stereoCalibrator3D.GetResultRotationParameters2()

함수 SetRotationParameters, SetRotationParameters2로 두 카메라의 Rotation Parameter의 설정이 가능합니다.
함수 GetResultRotationParameters, GetResultRotationParameters2로 설정된 두 카메라의 Rotation Parameter를 가져올 수 있습니다.
잘못된 패턴을 설정할 때 함수가 동작하지 않거나 결과 오류가 발생할 확률이 높습니다.

// 객체 생성
CStereoCalibrator3D stereoCalibrator3D;

// 카메라 Translation Parameters 변수
CStereoCalibrator3D::STranslationParameters sTransParam;

// 카메라의 Translation Parameters T0
double f64T0 = 0;
// 카메라의 Translation Parameters T1
double f64T1 = 0;
// 카메라의 Translation Parameters T2
double f64T2 = 0;
// 카메라의 Translation Parameters T3
double f64T3 = 0;
// 카메라의 Translation Parameters T4
double f64T4 = 0;
// 카메라의 Translation Parameters T5
double f64T5 = 0;
// 카메라의 Translation Parameters T6
double f64T6 = 0;
// 카메라의 Translation Parameters T7
double f64T7 = 0;
// 카메라의 Translation Parameters T8
double f64T8 = 0;
// 카메라의 Translation Parameters T9
double f64T9 = 0;
// 카메라의 Translation Parameters T10
double f64T10 = 0;
// 카메라의 Translation Parameters T11
double f64T11 = 0;

// 카메라의 Translation Parameters T0 설정
sTransParam.f64T0 = f64T0;
// 카메라의 Translation Parameters T1 설정
sTransParam.f64T1 = f64T1;
// 카메라의 Translation Parameters T2 설정
sTransParam.f64T2 = f64T2;
// 카메라의 Translation Parameters T3 설정
sTransParam.f64T3 = f64T3;
// 카메라의 Translation Parameters T4 설정
sTransParam.f64T4 = f64T4;
// 카메라의 Translation Parameters T5 설정
sTransParam.f64T5 = f64T5;
// 카메라의 Translation Parameters T6 설정
sTransParam.f64T6 = f64T6;
// 카메라의 Translation Parameters T7 설정
sTransParam.f64T7 = f64T7;
// 카메라의 Translation Parameters T8 설정
sTransParam.f64T8 = f64T8;
// 카메라의 Translation Parameters T9 설정
sTransParam.f64T9 = f64T9;
// 카메라의 Translation Parameters T10 설정
sTransParam.f64T10 = f64T10;
// 카메라의 Translation Parameters T11 설정
sTransParam.f64T11 = f64T11;

// 카메라1 Translation Parameters을 설정합니다.
stereoCalibrator3D.SetTranslationParameters(sTransParam);
// 카메라2 Translation Parameters을 설정합니다.
stereoCalibrator3D.SetTranslationParameters2(sTransParam);

// 카메라1 Translation Parameters을 가져옵니다.
CStereoCalibrator3D::STranslationParameters sGetTransParam1 = stereoCalibrator3D.GetResultTranslationParameters();
// 카메라2 Translation Parameters을 가져옵니다.
CStereoCalibrator3D::STranslationParameters sGetTransParam2 = stereoCalibrator3D.GetResultTranslationParameters2();
// 객체 생성
CStereoCalibrator3D stereoCalibrator3D = new CStereoCalibrator3D();

// 카메라 Translation Parameters 변수
CStereoCalibrator3D.STranslationParameters sTransParam = new CStereoCalibrator3D.STranslationParameters();

// 카메라의 Translation Parameters T0
double f64T0 = 0;
// 카메라의 Translation Parameters T1
double f64T1 = 0;
// 카메라의 Translation Parameters T2
double f64T2 = 0;
// 카메라의 Translation Parameters T3
double f64T3 = 0;
// 카메라의 Translation Parameters T4
double f64T4 = 0;
// 카메라의 Translation Parameters T5
double f64T5 = 0;
// 카메라의 Translation Parameters T6
double f64T6 = 0;
// 카메라의 Translation Parameters T7
double f64T7 = 0;
// 카메라의 Translation Parameters T8
double f64T8 = 0;
// 카메라의 Translation Parameters T9
double f64T9 = 0;
// 카메라의 Translation Parameters T10
double f64T10 = 0;
// 카메라의 Translation Parameters T11
double f64T11 = 0;

// 카메라의 Translation Parameters T0 설정
sTransParam.f64T0 = f64T0;
// 카메라의 Translation Parameters T1 설정
sTransParam.f64T1 = f64T1;
// 카메라의 Translation Parameters T2 설정
sTransParam.f64T2 = f64T2;
// 카메라의 Translation Parameters T3 설정
sTransParam.f64T3 = f64T3;
// 카메라의 Translation Parameters T4 설정
sTransParam.f64T4 = f64T4;
// 카메라의 Translation Parameters T5 설정
sTransParam.f64T5 = f64T5;
// 카메라의 Translation Parameters T6 설정
sTransParam.f64T6 = f64T6;
// 카메라의 Translation Parameters T7 설정
sTransParam.f64T7 = f64T7;
// 카메라의 Translation Parameters T8 설정
sTransParam.f64T8 = f64T8;
// 카메라의 Translation Parameters T9 설정
sTransParam.f64T9 = f64T9;
// 카메라의 Translation Parameters T10 설정
sTransParam.f64T10 = f64T10;
// 카메라의 Translation Parameters T11 설정
sTransParam.f64T11 = f64T11;

// 카메라1 Translation Parameters을 설정합니다.
stereoCalibrator3D.SetTranslationParameters(sTransParam);
// 카메라2 Translation Parameters을 설정합니다.
stereoCalibrator3D.SetTranslationParameters2(sTransParam);

// 카메라1 Translation Parameters을 가져옵니다.
CStereoCalibrator3D.STranslationParameters sGetTransParam1 = stereoCalibrator3D.GetResultTranslationParameters();
// 카메라2 Translation Parameters을 가져옵니다.
CStereoCalibrator3D.STranslationParameters sGetTransParam2 = stereoCalibrator3D.GetResultTranslationParameters2();
# 객체 생성
stereoCalibrator3D = CStereoCalibrator3D()

# 카메라 Translation Parameters 변수
sTransParam = CStereoCalibrator3D.STranslationParameters()

# 카메라의 Translation Parameters T0
f64T0 = 0
# 카메라의 Translation Parameters T1
f64T1 = 0
# 카메라의 Translation Parameters T2
f64T2 = 0
# 카메라의 Translation Parameters T3
f64T3 = 0
# 카메라의 Translation Parameters T4
f64T4 = 0
# 카메라의 Translation Parameters T5
f64T5 = 0
# 카메라의 Translation Parameters T6
f64T6 = 0
# 카메라의 Translation Parameters T7
f64T7 = 0
# 카메라의 Translation Parameters T8
f64T8 = 0
# 카메라의 Translation Parameters T9
f64T9 = 0
# 카메라의 Translation Parameters T10
f64T10 = 0
# 카메라의 Translation Parameters T11
f64T11 = 0

# 카메라의 Translation Parameters T0 설정
sTransParam.f64T0 = f64T0
# 카메라의 Translation Parameters T1 설정
sTransParam.f64T1 = f64T1
# 카메라의 Translation Parameters T2 설정
sTransParam.f64T2 = f64T2
# 카메라의 Translation Parameters T3 설정
sTransParam.f64T3 = f64T3
# 카메라의 Translation Parameters T4 설정
sTransParam.f64T4 = f64T4
# 카메라의 Translation Parameters T5 설정
sTransParam.f64T5 = f64T5
# 카메라의 Translation Parameters T6 설정
sTransParam.f64T6 = f64T6
# 카메라의 Translation Parameters T7 설정
sTransParam.f64T7 = f64T7
# 카메라의 Translation Parameters T8 설정
sTransParam.f64T8 = f64T8
# 카메라의 Translation Parameters T9 설정
sTransParam.f64T9 = f64T9
# 카메라의 Translation Parameters T10 설정
sTransParam.f64T10 = f64T10
# 카메라의 Translation Parameters T11 설정
sTransParam.f64T11 = f64T11

# 카메라1 Translation Parameters을 설정합니다.
stereoCalibrator3D.SetTranslationParameters(sTransParam)
# 카메라2 Translation Parameters을 설정합니다.
stereoCalibrator3D.SetTranslationParameters2(sTransParam)

# 카메라1 Translation Parameters을 가져옵니다.
sGetTransParam1 = stereoCalibrator3D.GetResultTranslationParameters()
# 카메라2 Translation Parameters을 가져옵니다.
sGetTransParam2 = stereoCalibrator3D.GetResultTranslationParameters2()

함수 SetTranslationParameters, SetTranslationParameters2로 두 카메라의 Translation Parameter의 설정이 가능합니다.
함수 GetResultTranslationParameters, GetResultTranslationParameters2로 설정된 두 카메라의 Translation Parameter를 가져올 수 있습니다.
잘못된 패턴을 설정할 때 함수가 동작하지 않거나 결과 오류가 발생할 확률이 높습니다.

// 객체 생성
CStereoCalibrator3D stereoCalibrator3D;

// 카메라 1 결과 Grid Result을 가져옵니다.
CStereoCalibrator3D::SGridResult sGetGridPoint;

int64_t i64ImagePage = 0;

stereoCalibrator3D.GetResultGridPoints(&sGetGridPoint, i64ImagePage);

// 카메라 2 결과 Grid Result을 가져옵니다.
CStereoCalibrator3D::SGridResult sGetGridPoint2;

int64_t i64ImagePage2 = 0;

stereoCalibrator3D.GetResultGridPoints2(&sGetGridPoint2, i64ImagePage2);
// 객체 생성
CStereoCalibrator3D stereoCalibrator3D = new CStereoCalibrator3D();

// 카메라 1 결과 Grid Result을 가져옵니다.
CStereoCalibrator3D.SGridResult sGetGridPoint = new CStereoCalibrator3D.SGridResult();

long i64ImagePage = 0;

stereoCalibrator3D.GetResultGridPoints(ref sGetGridPoint, i64ImagePage);

// 카메라 2 결과 Grid Result을 가져옵니다.
CStereoCalibrator3D.SGridResult sGetGridPoint2 = new CStereoCalibrator3D.SGridResult();

long i64ImagePage2 = 0;

stereoCalibrator3D.GetResultGridPoints2(ref sGetGridPoint2, i64ImagePage2);
# 객체 생성
stereoCalibrator3D = CStereoCalibrator3D()

# 카메라 1 결과 Grid Result을 가져옵니다.
sGetGridPoint = CStereoCalibrator3D.SGridResult()

i64ImagePage = 0

stereoCalibrator3D.GetResultGridPoints(sGetGridPoint, i64ImagePage)

# 카메라 2 결과 Grid Result을 가져옵니다.
sGetGridPoint2 = CStereoCalibrator3D.SGridResult()

i64ImagePage2 = 0

stereoCalibrator3D.GetResultGridPoints2(sGetGridPoint2, i64ImagePage2)

함수 GetResultGridPoints, GetResultGridPoints2로 설정된 두 카메라의 Grid Result를 가져올 수 있습니다.

// 객체 생성
CStereoCalibrator3D stereoCalibrator3D;

// 파일 위치
CFLString<wchar_t> wStrPath;

// 해당 위치에 Parameter 파일 저장
stereoCalibrator3D.Save(wStrPath);
// 해당 위치에 있는 Parameter 파일 불러오기
stereoCalibrator3D.Load(wStrPath);

// Major, Minor 버젼
int32_t i32MajorVer = 0;
int32_t i32MinorVer = 0;

// Parameter 저장 파일 버전 확인
stereoCalibrator3D.GetLearnedFileVersion(wStrPath, i32MajorVer, i32MinorVer);
// 객체 생성
CStereoCalibrator3D stereoCalibrator3D = new CStereoCalibrator3D();

// 파일 위치
string wStrPath = "";

// 해당 위치에 Parameter 파일 저장
stereoCalibrator3D.Save(wStrPath);
// 해당 위치에 있는 Parameter 파일 불러오기
stereoCalibrator3D.Load(wStrPath);

// Major, Minor 버젼
int i32MajorVer = 0;
int i32MinorVer = 0;

// Parameter 저장 파일 버전 확인
CStereoCalibrator3D.GetLearnedFileVersion(wStrPath, ref i32MajorVer, ref i32MinorVer);
# 객체 생성
stereoCalibrator3D = CStereoCalibrator3D()

# 파일 위치
wStrPath = ""

# 해당 위치에 Parameter 파일 저장
stereoCalibrator3D.Save(wStrPath)
# 해당 위치에 있는 Parameter 파일 불러오기
stereoCalibrator3D.Load(wStrPath)

# Major, Minor 버젼
i32MajorVer = 0
i32MinorVer = 0

# Parameter 저장 파일 버전 확인
CStereoCalibrator3D.GetLearnedFileVersion(wStrPath, i32MajorVer, i32MinorVer)

함수 Save로 이미 설정된 두 카메라의 Parameter를 입력한 위치에 저장할 수 있습니다.
함수 Load로 두 카메라의 Parameter를 입력한 위치에 있는 Parameter 파일로 불러올 수 있습니다.
함수 GetLearnedFileVersion으로 해당 위치에 있는 저장한 Parameter 파일의 버전을 가져옵니다.