🤖 AIによる機械翻訳(非公式) — これは OpenCV 5.0.0 公式リファレンス(英語)を AI (Claude) で自動翻訳したものです。訳に誤りを含む場合があります。正確な情報は 公式英語版(原文) を参照してください。

クラス Calib


  • public class Calib
    extends java.lang.Object
    • コンストラクタの詳細

      • Calib

        public Calib()
    • メソッドの詳細

      • initCameraMatrix2D

        public static Mat initCameraMatrix2D​(java.util.List<MatOfPoint3f> objectPoints,
                                             java.util.List<MatOfPoint2f> imagePoints,
                                             Size imageSize,
                                             double aspectRatio)
        Finds an initial camera intrinsic matrix from 3D-2D point correspondences.
        引数:
        objectPoints - キャリブレーションパターン座標空間におけるキャリブレーションパターン点のベクトルのベクトル。旧インターフェースでは、ビューごとのすべてのベクトルが連結される。詳細は #calibrateCamera を参照。
        imagePoints - キャリブレーションパターン点の投影のベクトルのベクトル。旧インターフェースでは、ビューごとのすべてのベクトルが連結される。
        imageSize - 主点を初期化するために使用される、ピクセル単位の画像サイズ。
        aspectRatio - ゼロまたは負の場合、\(f_x\) と \(f_y\) は独立に推定される。それ以外の場合、\(f_x = f_y \cdot \texttt{aspectRatio}\) となる。この関数は、カメラキャリブレーション処理のための初期カメラ内部行列を推定して返す。現在、この関数は平面キャリブレーションパターンのみをサポートしている。これは各オブジェクト点のz座標が =0 となるパターンである。
        戻り値:
        自動生成
      • initCameraMatrix2D

        public static Mat initCameraMatrix2D​(java.util.List<MatOfPoint3f> objectPoints,
                                             java.util.List<MatOfPoint2f> imagePoints,
                                             Size imageSize)
        Finds an initial camera intrinsic matrix from 3D-2D point correspondences.
        引数:
        objectPoints - キャリブレーションパターン座標空間におけるキャリブレーションパターン点のベクトルのベクトル。旧インターフェースでは、ビューごとのすべてのベクトルが連結される。詳細は #calibrateCamera を参照。
        imagePoints - キャリブレーションパターン点の投影のベクトルのベクトル。旧インターフェースでは、ビューごとのすべてのベクトルが連結される。
        imageSize - 主点を初期化するために使用される、ピクセル単位の画像サイズ。それ以外の場合、\(f_x = f_y \cdot \texttt{aspectRatio}\) となる。この関数は、カメラキャリブレーション処理のための初期カメラ内部行列を推定して返す。現在、この関数は平面キャリブレーションパターンのみをサポートしている。これは各オブジェクト点のz座標が =0 となるパターンである。
        戻り値:
        自動生成
      • calibrateCameraExtended

        public static double calibrateCameraExtended​(java.util.List<Mat> objectPoints,
                                                     java.util.List<Mat> imagePoints,
                                                     Size imageSize,
                                                     Mat cameraMatrix,
                                                     Mat distCoeffs,
                                                     java.util.List<Mat> rvecs,
                                                     java.util.List<Mat> tvecs,
                                                     Mat stdDeviationsIntrinsics,
                                                     Mat stdDeviationsExtrinsics,
                                                     Mat perViewErrors,
                                                     int flags,
                                                     TermCriteria criteria)
        Finds the camera intrinsic and extrinsic parameters from several views of a calibration pattern.
        引数:
        objectPoints - 新しいインターフェースでは、これはキャリブレーションパターン座標空間におけるキャリブレーションパターン点のベクトルのベクトルである(例: std::vector<std::vector<cv::Vec3f>>)。外側のベクトルはパターンビューの数と同じ数の要素を持つ。各ビューで同じキャリブレーションパターンが示され、それが完全に見えている場合、すべてのベクトルは同一になる。ただし、部分的に隠れたパターンや、ビューごとに異なるパターンを使用することも可能である。その場合、ベクトルは異なるものになる。点は3次元であるが、使用するキャリブレーションパターンが平面リグであれば、それらはすべてキャリブレーションパターンのXY座標平面上にある(したがってZ座標は0)。旧インターフェースでは、異なるビューからの物体点のすべてのベクトルが連結される。
        imagePoints - 新しいインターフェースでは、これはキャリブレーションパターン点の投影のベクトルのベクトルである(例: std::vector<std::vector<cv::Vec2f>>)。imagePoints.size() と objectPoints.size()、および各 i に対する imagePoints[i].size() と objectPoints[i].size() は、それぞれ等しくなければならない。旧インターフェースでは、異なるビューからの物体点のすべてのベクトルが連結される。
        imageSize - カメラ内部行列の初期化にのみ使用される画像のサイズ。
        cameraMatrix - 3x3浮動小数点のカメラ内部行列 \(\cameramatrix{A}\) の入出力。 REF: CALIB_USE_INTRINSIC_GUESS および/または REF: CALIB_FIX_ASPECT_RATIO、REF: CALIB_FIX_PRINCIPAL_POINT、REF: CALIB_FIX_FOCAL_LENGTH が指定されている場合、関数を呼び出す前に fx, fy, cx, cy の一部またはすべてを初期化しておく必要がある。
        distCoeffs - 歪み係数 \(\distcoeffs\) の入出力ベクトル。
        rvecs - 各パターンビューについて推定された回転ベクトル(REF: Rodrigues)の出力ベクトル(例: std::vector<cv::Mat>>)。すなわち、各 i 番目の回転ベクトルは、対応する i 番目の並進ベクトル(次の出力パラメータの説明を参照)とともに、キャリブレーションパターンを物体座標空間(物体点が指定される空間)からカメラ座標空間へ移す。より技術的に言えば、i 番目の回転ベクトルと並進ベクトルの組は、物体座標空間からカメラ座標空間への基底変換を行う。その双対性により、この組はカメラ座標空間に対するキャリブレーションパターンの位置と等価である。
        tvecs - 各パターンビューについて推定された並進ベクトルの出力ベクトル。上記の引数の説明を参照。
        stdDeviationsIntrinsics - 内部パラメータについて推定された標準偏差の出力ベクトル。偏差値の順序: \((f_x, f_y, c_x, c_y, k_1, k_2, p_1, p_2, k_3, k_4, k_5, k_6 , s_1, s_2, s_3, s_4, \tau_x, \tau_y)\) いずれかのパラメータが推定されない場合、その偏差は0となる。
        stdDeviationsExtrinsics - 外部パラメータについて推定された標準偏差の出力ベクトル。偏差値の順序: \((R_0, T_0, \dotsc , R_{M - 1}, T_{M - 1})\)。ここで M はパターンビューの数。 \(R_i, T_i\) は連結された1x3ベクトルである。
        perViewErrors - 各パターンビューについて推定されたRMS再投影誤差の出力ベクトル。
        flags - Different flags that may be zero or a combination of the following values:
        • REF: CALIB_USE_INTRINSIC_GUESS cameraMatrix には、さらに最適化される fx, fy, cx, cy の有効な初期値が含まれている。そうでない場合、(cx, cy) は初期状態で画像中心に設定され(imageSize が使用される)、焦点距離は最小二乗法で計算される。なお、内部パラメータが既知であれば、外部パラメータを推定するためだけにこの関数を使う必要はない。代わりに REF: solvePnP を使用すること。
        • REF: CALIB_DISABLE_SCHUR_COMPLEMENT Schur補元を無効にし、Bouguetキャリブレーションエンジンを使用する (CITE: Zhang2000, CITE: BouguetMCT)。
        • REF: CALIB_FIX_PRINCIPAL_POINT 主点はグローバル最適化の間変更されない。中心、または REF: CALIB_USE_INTRINSIC_GUESS も設定されている場合に指定された別の位置にとどまる。
        • REF: CALIB_FIX_ASPECT_RATIO 関数は fy のみを自由パラメータとみなす。比 fx/fy は入力 cameraMatrix と同じままにされる。 REF: CALIB_USE_INTRINSIC_GUESS が設定されていない場合、fx と fy の実際の入力値は無視され、それらの比のみが計算されて以降使用される。
        • REF: CALIB_ZERO_TANGENT_DIST 接線歪み係数 \((p_1, p_2)\) はゼロに設定され、ゼロのままにされる。
        • REF: CALIB_FIX_FOCAL_LENGTH REF: CALIB_USE_INTRINSIC_GUESS が設定されている場合、焦点距離はグローバル最適化の間変更されない。
        • REF: CALIB_FIX_K1,..., REF: CALIB_FIX_K6 対応する半径方向歪み係数は最適化の間変更されない。 REF: CALIB_USE_INTRINSIC_GUESS が設定されている場合、与えられた distCoeffs 行列の係数が使用される。そうでない場合は0に設定される。
        • REF: CALIB_RATIONAL_MODEL 係数 k4, k5, k6 が有効になる。後方互換性を提供するため、キャリブレーション関数に有理モデルを使用させ、8個以上の係数を返させるには、この追加フラグを明示的に指定する必要がある。
        • REF: CALIB_THIN_PRISM_MODEL 係数 s1, s2, s3, s4 が有効になる。後方互換性を提供するため、キャリブレーション関数に薄プリズムモデルを使用させ、12個以上の係数を返させるには、この追加フラグを明示的に指定する必要がある。
        • REF: CALIB_FIX_S1_S2_S3_S4 薄プリズム歪み係数は最適化の間変更されない。 REF: CALIB_USE_INTRINSIC_GUESS が設定されている場合、与えられた distCoeffs 行列の係数が使用される。そうでない場合は0に設定される。
        • REF: CALIB_TILTED_MODEL 係数 tauX と tauY が有効になる。後方互換性を提供するため、キャリブレーション関数に傾斜センサモデルを使用させ、14個の係数を返させるには、この追加フラグを明示的に指定する必要がある。
        • REF: CALIB_FIX_TAUX_TAUY 傾斜センサモデルの係数は最適化の間変更されない。 REF: CALIB_USE_INTRINSIC_GUESS が設定されている場合、与えられた distCoeffs 行列の係数が使用される。そうでない場合は0に設定される。
        criteria - 反復最適化アルゴリズムの終了条件。
        戻り値:
        the overall RMS re-projection error. The function estimates the intrinsic camera parameters and extrinsic parameters for each of the views. By default, the optimization follows a sparse bundle adjustment formulation with Schur complement; see CITE: Triggs2000_bundle_adjustment and CITE: Lourakis2009_sba for background. Use REF: CALIB_DISABLE_SCHUR_COMPLEMENT to switch to the Bouguet calibration engine. The coordinates of 3D object points and their corresponding 2D projections in each view must be specified. That may be achieved by using an object with known geometry and easily detectable feature points. Such an object is called a calibration rig or calibration pattern, and OpenCV has built-in support for a chessboard as a calibration rig (see REF: findChessboardCorners). Currently, initialization of intrinsic parameters (when REF: CALIB_USE_INTRINSIC_GUESS is not set) is only implemented for planar calibration patterns (where Z-coordinates of the object points must be all zeros). 3D calibration rigs can also be used as long as initial cameraMatrix is provided. The algorithm performs the following steps:
        • 初期内部パラメータを計算する (このオプションは平面キャリブレーションパターンに対してのみ利用可能)、または入力パラメータから読み取る。CALIB_FIX_K? のいくつかが指定されていない限り、歪み係数は初期値としてすべてゼロに設定される。
        • 内部パラメータがすでに既知であるかのように、初期カメラ姿勢を推定する。これは REF: solvePnP を用いて行われる。
        • グローバルなLevenberg-Marquardt最適化アルゴリズムを実行して再投影誤差、すなわち観測された特徴点 imagePoints と投影された(現在のカメラパラメータと姿勢の推定値を用いた)物体点 objectPoints との間の二乗距離の総和を最小化する。詳細は REF: projectPoints を参照。
        • 実際には、安定した結果を得るためにロバストな取得が不可欠である。大きく傾けた複数のボード姿勢を使い、すべてのビューを単一の作業距離で収集することを避け、想定される作業距離の範囲をカバーすること(より長い距離には、より大きなマス目を持つ大きなボードが役立つ)。
        覚え書き: If you use a non-square (i.e. non-N-by-N) grid and REF: findChessboardCorners for calibration, and REF: calibrateCamera returns bad values (zero distortion coefficients, \(c_x\) and \(c_y\) very far from the image center, and/or large differences between \(f_x\) and \(f_y\) (ratios of 10:1 or more)), then you are probably using patternSize=cvSize(rows,cols) instead of using patternSize=cvSize(cols,rows) in REF: findChessboardCorners. 覚え書き: The function may throw exceptions, if unsupported combination of parameters is provided or the system is underconstrained. SEE: calibrateCameraRO, findChessboardCorners, solvePnP, initCameraMatrix2D, stereoCalibrate, undistort
      • calibrateCameraExtended

        public static double calibrateCameraExtended​(java.util.List<Mat> objectPoints,
                                                     java.util.List<Mat> imagePoints,
                                                     Size imageSize,
                                                     Mat cameraMatrix,
                                                     Mat distCoeffs,
                                                     java.util.List<Mat> rvecs,
                                                     java.util.List<Mat> tvecs,
                                                     Mat stdDeviationsIntrinsics,
                                                     Mat stdDeviationsExtrinsics,
                                                     Mat perViewErrors,
                                                     int flags)
        Finds the camera intrinsic and extrinsic parameters from several views of a calibration pattern.
        引数:
        objectPoints - 新しいインターフェースでは、これはキャリブレーションパターン座標空間におけるキャリブレーションパターン点のベクトルのベクトルである(例: std::vector<std::vector<cv::Vec3f>>)。外側のベクトルはパターンビューの数と同じ数の要素を持つ。各ビューで同じキャリブレーションパターンが示され、それが完全に見えている場合、すべてのベクトルは同一になる。ただし、部分的に隠れたパターンや、ビューごとに異なるパターンを使用することも可能である。その場合、ベクトルは異なるものになる。点は3次元であるが、使用するキャリブレーションパターンが平面リグであれば、それらはすべてキャリブレーションパターンのXY座標平面上にある(したがってZ座標は0)。旧インターフェースでは、異なるビューからの物体点のすべてのベクトルが連結される。
        imagePoints - 新しいインターフェースでは、これはキャリブレーションパターン点の投影のベクトルのベクトルである(例: std::vector<std::vector<cv::Vec2f>>)。imagePoints.size() と objectPoints.size()、および各 i に対する imagePoints[i].size() と objectPoints[i].size() は、それぞれ等しくなければならない。旧インターフェースでは、異なるビューからの物体点のすべてのベクトルが連結される。
        imageSize - カメラ内部行列の初期化にのみ使用される画像のサイズ。
        cameraMatrix - 3x3浮動小数点のカメラ内部行列 \(\cameramatrix{A}\) の入出力。 REF: CALIB_USE_INTRINSIC_GUESS および/または REF: CALIB_FIX_ASPECT_RATIO、REF: CALIB_FIX_PRINCIPAL_POINT、REF: CALIB_FIX_FOCAL_LENGTH が指定されている場合、関数を呼び出す前に fx, fy, cx, cy の一部またはすべてを初期化しておく必要がある。
        distCoeffs - 歪み係数 \(\distcoeffs\) の入出力ベクトル。
        rvecs - 各パターンビューについて推定された回転ベクトル(REF: Rodrigues)の出力ベクトル(例: std::vector<cv::Mat>>)。すなわち、各 i 番目の回転ベクトルは、対応する i 番目の並進ベクトル(次の出力パラメータの説明を参照)とともに、キャリブレーションパターンを物体座標空間(物体点が指定される空間)からカメラ座標空間へ移す。より技術的に言えば、i 番目の回転ベクトルと並進ベクトルの組は、物体座標空間からカメラ座標空間への基底変換を行う。その双対性により、この組はカメラ座標空間に対するキャリブレーションパターンの位置と等価である。
        tvecs - 各パターンビューについて推定された並進ベクトルの出力ベクトル。上記の引数の説明を参照。
        stdDeviationsIntrinsics - 内部パラメータについて推定された標準偏差の出力ベクトル。偏差値の順序: \((f_x, f_y, c_x, c_y, k_1, k_2, p_1, p_2, k_3, k_4, k_5, k_6 , s_1, s_2, s_3, s_4, \tau_x, \tau_y)\) いずれかのパラメータが推定されない場合、その偏差は0となる。
        stdDeviationsExtrinsics - 外部パラメータについて推定された標準偏差の出力ベクトル。偏差値の順序: \((R_0, T_0, \dotsc , R_{M - 1}, T_{M - 1})\)。ここで M はパターンビューの数。 \(R_i, T_i\) は連結された1x3ベクトルである。
        perViewErrors - 各パターンビューについて推定されたRMS再投影誤差の出力ベクトル。
        flags - Different flags that may be zero or a combination of the following values:
        • REF: CALIB_USE_INTRINSIC_GUESS cameraMatrix には、さらに最適化される fx, fy, cx, cy の有効な初期値が含まれている。そうでない場合、(cx, cy) は初期状態で画像中心に設定され(imageSize が使用される)、焦点距離は最小二乗法で計算される。なお、内部パラメータが既知であれば、外部パラメータを推定するためだけにこの関数を使う必要はない。代わりに REF: solvePnP を使用すること。
        • REF: CALIB_DISABLE_SCHUR_COMPLEMENT Schur補元を無効にし、Bouguetキャリブレーションエンジンを使用する (CITE: Zhang2000, CITE: BouguetMCT)。
        • REF: CALIB_FIX_PRINCIPAL_POINT 主点はグローバル最適化の間変更されない。中心、または REF: CALIB_USE_INTRINSIC_GUESS も設定されている場合に指定された別の位置にとどまる。
        • REF: CALIB_FIX_ASPECT_RATIO 関数は fy のみを自由パラメータとみなす。比 fx/fy は入力 cameraMatrix と同じままにされる。 REF: CALIB_USE_INTRINSIC_GUESS が設定されていない場合、fx と fy の実際の入力値は無視され、それらの比のみが計算されて以降使用される。
        • REF: CALIB_ZERO_TANGENT_DIST 接線歪み係数 \((p_1, p_2)\) はゼロに設定され、ゼロのままにされる。
        • REF: CALIB_FIX_FOCAL_LENGTH REF: CALIB_USE_INTRINSIC_GUESS が設定されている場合、焦点距離はグローバル最適化の間変更されない。
        • REF: CALIB_FIX_K1,..., REF: CALIB_FIX_K6 対応する半径方向歪み係数は最適化の間変更されない。 REF: CALIB_USE_INTRINSIC_GUESS が設定されている場合、与えられた distCoeffs 行列の係数が使用される。そうでない場合は0に設定される。
        • REF: CALIB_RATIONAL_MODEL 係数 k4, k5, k6 が有効になる。後方互換性を提供するため、キャリブレーション関数に有理モデルを使用させ、8個以上の係数を返させるには、この追加フラグを明示的に指定する必要がある。
        • REF: CALIB_THIN_PRISM_MODEL 係数 s1, s2, s3, s4 が有効になる。後方互換性を提供するため、キャリブレーション関数に薄プリズムモデルを使用させ、12個以上の係数を返させるには、この追加フラグを明示的に指定する必要がある。
        • REF: CALIB_FIX_S1_S2_S3_S4 薄プリズム歪み係数は最適化の間変更されない。 REF: CALIB_USE_INTRINSIC_GUESS が設定されている場合、与えられた distCoeffs 行列の係数が使用される。そうでない場合は0に設定される。
        • REF: CALIB_TILTED_MODEL 係数 tauX と tauY が有効になる。後方互換性を提供するため、キャリブレーション関数に傾斜センサモデルを使用させ、14個の係数を返させるには、この追加フラグを明示的に指定する必要がある。
        • REF: CALIB_FIX_TAUX_TAUY 傾斜センサモデルの係数は最適化の間変更されない。 REF: CALIB_USE_INTRINSIC_GUESS が設定されている場合、与えられた distCoeffs 行列の係数が使用される。そうでない場合は0に設定される。
        戻り値:
        the overall RMS re-projection error. The function estimates the intrinsic camera parameters and extrinsic parameters for each of the views. By default, the optimization follows a sparse bundle adjustment formulation with Schur complement; see CITE: Triggs2000_bundle_adjustment and CITE: Lourakis2009_sba for background. Use REF: CALIB_DISABLE_SCHUR_COMPLEMENT to switch to the Bouguet calibration engine. The coordinates of 3D object points and their corresponding 2D projections in each view must be specified. That may be achieved by using an object with known geometry and easily detectable feature points. Such an object is called a calibration rig or calibration pattern, and OpenCV has built-in support for a chessboard as a calibration rig (see REF: findChessboardCorners). Currently, initialization of intrinsic parameters (when REF: CALIB_USE_INTRINSIC_GUESS is not set) is only implemented for planar calibration patterns (where Z-coordinates of the object points must be all zeros). 3D calibration rigs can also be used as long as initial cameraMatrix is provided. The algorithm performs the following steps:
        • 初期内部パラメータを計算する (このオプションは平面キャリブレーションパターンに対してのみ利用可能)、または入力パラメータから読み取る。CALIB_FIX_K? のいくつかが指定されていない限り、歪み係数は初期値としてすべてゼロに設定される。
        • 内部パラメータがすでに既知であるかのように、初期カメラ姿勢を推定する。これは REF: solvePnP を用いて行われる。
        • グローバルなLevenberg-Marquardt最適化アルゴリズムを実行して再投影誤差、すなわち観測された特徴点 imagePoints と投影された(現在のカメラパラメータと姿勢の推定値を用いた)物体点 objectPoints との間の二乗距離の総和を最小化する。詳細は REF: projectPoints を参照。
        • 実際には、安定した結果を得るためにロバストな取得が不可欠である。大きく傾けた複数のボード姿勢を使い、すべてのビューを単一の作業距離で収集することを避け、想定される作業距離の範囲をカバーすること(より長い距離には、より大きなマス目を持つ大きなボードが役立つ)。
        覚え書き: If you use a non-square (i.e. non-N-by-N) grid and REF: findChessboardCorners for calibration, and REF: calibrateCamera returns bad values (zero distortion coefficients, \(c_x\) and \(c_y\) very far from the image center, and/or large differences between \(f_x\) and \(f_y\) (ratios of 10:1 or more)), then you are probably using patternSize=cvSize(rows,cols) instead of using patternSize=cvSize(cols,rows) in REF: findChessboardCorners. 覚え書き: The function may throw exceptions, if unsupported combination of parameters is provided or the system is underconstrained. SEE: calibrateCameraRO, findChessboardCorners, solvePnP, initCameraMatrix2D, stereoCalibrate, undistort
      • calibrateCameraExtended

        public static double calibrateCameraExtended​(java.util.List<Mat> objectPoints,
                                                     java.util.List<Mat> imagePoints,
                                                     Size imageSize,
                                                     Mat cameraMatrix,
                                                     Mat distCoeffs,
                                                     java.util.List<Mat> rvecs,
                                                     java.util.List<Mat> tvecs,
                                                     Mat stdDeviationsIntrinsics,
                                                     Mat stdDeviationsExtrinsics,
                                                     Mat perViewErrors)
        Finds the camera intrinsic and extrinsic parameters from several views of a calibration pattern.
        引数:
        objectPoints - 新しいインターフェースでは、これはキャリブレーションパターン座標空間におけるキャリブレーションパターン点のベクトルのベクトルである(例: std::vector<std::vector<cv::Vec3f>>)。外側のベクトルはパターンビューの数と同じ数の要素を持つ。各ビューで同じキャリブレーションパターンが示され、それが完全に見えている場合、すべてのベクトルは同一になる。ただし、部分的に隠れたパターンや、ビューごとに異なるパターンを使用することも可能である。その場合、ベクトルは異なるものになる。点は3次元であるが、使用するキャリブレーションパターンが平面リグであれば、それらはすべてキャリブレーションパターンのXY座標平面上にある(したがってZ座標は0)。旧インターフェースでは、異なるビューからの物体点のすべてのベクトルが連結される。
        imagePoints - 新しいインターフェースでは、これはキャリブレーションパターン点の投影のベクトルのベクトルである(例: std::vector<std::vector<cv::Vec2f>>)。imagePoints.size() と objectPoints.size()、および各 i に対する imagePoints[i].size() と objectPoints[i].size() は、それぞれ等しくなければならない。旧インターフェースでは、異なるビューからの物体点のすべてのベクトルが連結される。
        imageSize - カメラ内部行列の初期化にのみ使用される画像のサイズ。
        cameraMatrix - 3x3浮動小数点のカメラ内部行列 \(\cameramatrix{A}\) の入出力。 REF: CALIB_USE_INTRINSIC_GUESS および/または REF: CALIB_FIX_ASPECT_RATIO、REF: CALIB_FIX_PRINCIPAL_POINT、REF: CALIB_FIX_FOCAL_LENGTH が指定されている場合、関数を呼び出す前に fx, fy, cx, cy の一部またはすべてを初期化しておく必要がある。
        distCoeffs - 歪み係数 \(\distcoeffs\) の入出力ベクトル。
        rvecs - 各パターンビューについて推定された回転ベクトル(REF: Rodrigues)の出力ベクトル(例: std::vector<cv::Mat>>)。すなわち、各 i 番目の回転ベクトルは、対応する i 番目の並進ベクトル(次の出力パラメータの説明を参照)とともに、キャリブレーションパターンを物体座標空間(物体点が指定される空間)からカメラ座標空間へ移す。より技術的に言えば、i 番目の回転ベクトルと並進ベクトルの組は、物体座標空間からカメラ座標空間への基底変換を行う。その双対性により、この組はカメラ座標空間に対するキャリブレーションパターンの位置と等価である。
        tvecs - 各パターンビューについて推定された並進ベクトルの出力ベクトル。上記の引数の説明を参照。
        stdDeviationsIntrinsics - 内部パラメータについて推定された標準偏差の出力ベクトル。偏差値の順序: \((f_x, f_y, c_x, c_y, k_1, k_2, p_1, p_2, k_3, k_4, k_5, k_6 , s_1, s_2, s_3, s_4, \tau_x, \tau_y)\) いずれかのパラメータが推定されない場合、その偏差は0となる。
        stdDeviationsExtrinsics - 外部パラメータについて推定された標準偏差の出力ベクトル。偏差値の順序: \((R_0, T_0, \dotsc , R_{M - 1}, T_{M - 1})\)。ここで M はパターンビューの数。 \(R_i, T_i\) は連結された1x3ベクトルである。
        perViewErrors - Output vector of the RMS re-projection error estimated for each pattern view.
        • REF: CALIB_USE_INTRINSIC_GUESS cameraMatrix には、さらに最適化される fx, fy, cx, cy の有効な初期値が含まれている。そうでない場合、(cx, cy) は初期状態で画像中心に設定され(imageSize が使用される)、焦点距離は最小二乗法で計算される。なお、内部パラメータが既知であれば、外部パラメータを推定するためだけにこの関数を使う必要はない。代わりに REF: solvePnP を使用すること。
        • REF: CALIB_DISABLE_SCHUR_COMPLEMENT Schur補元を無効にし、Bouguetキャリブレーションエンジンを使用する (CITE: Zhang2000, CITE: BouguetMCT)。
        • REF: CALIB_FIX_PRINCIPAL_POINT 主点はグローバル最適化の間変更されない。中心、または REF: CALIB_USE_INTRINSIC_GUESS も設定されている場合に指定された別の位置にとどまる。
        • REF: CALIB_FIX_ASPECT_RATIO 関数は fy のみを自由パラメータとみなす。比 fx/fy は入力 cameraMatrix と同じままにされる。 REF: CALIB_USE_INTRINSIC_GUESS が設定されていない場合、fx と fy の実際の入力値は無視され、それらの比のみが計算されて以降使用される。
        • REF: CALIB_ZERO_TANGENT_DIST 接線歪み係数 \((p_1, p_2)\) はゼロに設定され、ゼロのままにされる。
        • REF: CALIB_FIX_FOCAL_LENGTH REF: CALIB_USE_INTRINSIC_GUESS が設定されている場合、焦点距離はグローバル最適化の間変更されない。
        • REF: CALIB_FIX_K1,..., REF: CALIB_FIX_K6 対応する半径方向歪み係数は最適化の間変更されない。 REF: CALIB_USE_INTRINSIC_GUESS が設定されている場合、与えられた distCoeffs 行列の係数が使用される。そうでない場合は0に設定される。
        • REF: CALIB_RATIONAL_MODEL 係数 k4, k5, k6 が有効になる。後方互換性を提供するため、キャリブレーション関数に有理モデルを使用させ、8個以上の係数を返させるには、この追加フラグを明示的に指定する必要がある。
        • REF: CALIB_THIN_PRISM_MODEL 係数 s1, s2, s3, s4 が有効になる。後方互換性を提供するため、キャリブレーション関数に薄プリズムモデルを使用させ、12個以上の係数を返させるには、この追加フラグを明示的に指定する必要がある。
        • REF: CALIB_FIX_S1_S2_S3_S4 薄プリズム歪み係数は最適化の間変更されない。 REF: CALIB_USE_INTRINSIC_GUESS が設定されている場合、与えられた distCoeffs 行列の係数が使用される。そうでない場合は0に設定される。
        • REF: CALIB_TILTED_MODEL 係数 tauX と tauY が有効になる。後方互換性を提供するため、キャリブレーション関数に傾斜センサモデルを使用させ、14個の係数を返させるには、この追加フラグを明示的に指定する必要がある。
        • REF: CALIB_FIX_TAUX_TAUY 傾斜センサモデルの係数は最適化の間変更されない。 REF: CALIB_USE_INTRINSIC_GUESS が設定されている場合、与えられた distCoeffs 行列の係数が使用される。そうでない場合は0に設定される。
        戻り値:
        the overall RMS re-projection error. The function estimates the intrinsic camera parameters and extrinsic parameters for each of the views. By default, the optimization follows a sparse bundle adjustment formulation with Schur complement; see CITE: Triggs2000_bundle_adjustment and CITE: Lourakis2009_sba for background. Use REF: CALIB_DISABLE_SCHUR_COMPLEMENT to switch to the Bouguet calibration engine. The coordinates of 3D object points and their corresponding 2D projections in each view must be specified. That may be achieved by using an object with known geometry and easily detectable feature points. Such an object is called a calibration rig or calibration pattern, and OpenCV has built-in support for a chessboard as a calibration rig (see REF: findChessboardCorners). Currently, initialization of intrinsic parameters (when REF: CALIB_USE_INTRINSIC_GUESS is not set) is only implemented for planar calibration patterns (where Z-coordinates of the object points must be all zeros). 3D calibration rigs can also be used as long as initial cameraMatrix is provided. The algorithm performs the following steps:
        • 初期内部パラメータを計算する (このオプションは平面キャリブレーションパターンに対してのみ利用可能)、または入力パラメータから読み取る。CALIB_FIX_K? のいくつかが指定されていない限り、歪み係数は初期値としてすべてゼロに設定される。
        • 内部パラメータがすでに既知であるかのように、初期カメラ姿勢を推定する。これは REF: solvePnP を用いて行われる。
        • グローバルなLevenberg-Marquardt最適化アルゴリズムを実行して再投影誤差、すなわち観測された特徴点 imagePoints と投影された(現在のカメラパラメータと姿勢の推定値を用いた)物体点 objectPoints との間の二乗距離の総和を最小化する。詳細は REF: projectPoints を参照。
        • 実際には、安定した結果を得るためにロバストな取得が不可欠である。大きく傾けた複数のボード姿勢を使い、すべてのビューを単一の作業距離で収集することを避け、想定される作業距離の範囲をカバーすること(より長い距離には、より大きなマス目を持つ大きなボードが役立つ)。
        覚え書き: If you use a non-square (i.e. non-N-by-N) grid and REF: findChessboardCorners for calibration, and REF: calibrateCamera returns bad values (zero distortion coefficients, \(c_x\) and \(c_y\) very far from the image center, and/or large differences between \(f_x\) and \(f_y\) (ratios of 10:1 or more)), then you are probably using patternSize=cvSize(rows,cols) instead of using patternSize=cvSize(cols,rows) in REF: findChessboardCorners. 覚え書き: The function may throw exceptions, if unsupported combination of parameters is provided or the system is underconstrained. SEE: calibrateCameraRO, findChessboardCorners, solvePnP, initCameraMatrix2D, stereoCalibrate, undistort
      • calibrateCamera

        public static double calibrateCamera​(java.util.List<Mat> objectPoints,
                                             java.util.List<Mat> imagePoints,
                                             Size imageSize,
                                             Mat cameraMatrix,
                                             Mat distCoeffs,
                                             java.util.List<Mat> rvecs,
                                             java.util.List<Mat> tvecs,
                                             int flags,
                                             TermCriteria criteria)
      • calibrateCamera

        public static double calibrateCamera​(java.util.List<Mat> objectPoints,
                                             java.util.List<Mat> imagePoints,
                                             Size imageSize,
                                             Mat cameraMatrix,
                                             Mat distCoeffs,
                                             java.util.List<Mat> rvecs,
                                             java.util.List<Mat> tvecs,
                                             int flags)
      • calibrateCamera

        public static double calibrateCamera​(java.util.List<Mat> objectPoints,
                                             java.util.List<Mat> imagePoints,
                                             Size imageSize,
                                             Mat cameraMatrix,
                                             Mat distCoeffs,
                                             java.util.List<Mat> rvecs,
                                             java.util.List<Mat> tvecs)
      • calibrateCameraROExtended

        public static double calibrateCameraROExtended​(java.util.List<Mat> objectPoints,
                                                       java.util.List<Mat> imagePoints,
                                                       Size imageSize,
                                                       int iFixedPoint,
                                                       Mat cameraMatrix,
                                                       Mat distCoeffs,
                                                       java.util.List<Mat> rvecs,
                                                       java.util.List<Mat> tvecs,
                                                       Mat newObjPoints,
                                                       Mat stdDeviationsIntrinsics,
                                                       Mat stdDeviationsExtrinsics,
                                                       Mat stdDeviationsObjPoints,
                                                       Mat perViewErrors,
                                                       int flags,
                                                       TermCriteria criteria)
        Finds the camera intrinsic and extrinsic parameters from several views of a calibration pattern. This function is an extension of #calibrateCamera with the method of releasing object which was proposed in CITE: strobl2011iccv. In many common cases with inaccurate, unmeasured, roughly planar targets (calibration plates), this method can dramatically improve the precision of the estimated camera parameters. Both the object-releasing method and standard method are supported by this function. Use the parameter iFixedPoint for method selection. In the internal implementation, #calibrateCamera is a wrapper for this function.
        引数:
        objectPoints - キャリブレーションパターン座標空間におけるキャリブレーションパターン点のベクトルのベクトル。詳細は #calibrateCamera を参照。物体解放法(object releasing method)を使用する場合、各ビューで同一のキャリブレーションボードを使用し、それが完全に見えていなければならず、すべての objectPoints[i] が同一で、すべての点がおおむね平面に近くなければならない。キャリブレーションターゲットは剛体でなければならない。少なくとも、画像取得のために(キャリブレーションターゲットではなく)カメラを移動させる場合は静止していなければならない。
        imagePoints - キャリブレーションパターン点の投影のベクトルのベクトル。詳細は #calibrateCamera を参照。
        imageSize - 内部カメラ行列を初期化するためだけに使用される画像のサイズ。
        iFixedPoint - 固定する objectPoints[0] 内の3D物体点のインデックス。これはキャリブレーション手法の選択スイッチとしても機能する。物体解放法を使用する場合は [1, objectPoints[0].size()-2] の範囲でパラメータを渡し、そうでない場合はこの範囲外の値を渡すと標準キャリブレーション手法が選択される。通常、物体解放法を利用する場合はキャリブレーションボードグリッドの右上隅の点を固定することが推奨される。 \cite strobl2011iccv によれば、他の2点も固定される。この実装では、objectPoints[0].front と objectPoints[0].back.z が使用される。物体解放法では、これら3つの固定点の座標が十分に正確である場合にのみ、正確な rvecs、tvecs、newObjPoints が得られる。
        cameraMatrix - 3x3浮動小数点のカメラ行列の出力。詳細は #calibrateCamera を参照。
        distCoeffs - 歪み係数の出力ベクトル。詳細は #calibrateCamera を参照。
        rvecs - 各パターンビューについて推定された回転ベクトルの出力ベクトル。詳細は #calibrateCamera を参照。
        tvecs - 各パターンビューについて推定された並進ベクトルの出力ベクトル。
        newObjPoints - キャリブレーションパターン点の更新された出力ベクトル。座標は3つの固定点に基づいてスケーリングされる場合がある。返される座標は、上記の3つの固定点が正確である場合にのみ正確である。不要であれば noArray() を渡せる。このパラメータは標準キャリブレーション手法では無視される。
        stdDeviationsIntrinsics - 内部パラメータについて推定された標準偏差の出力ベクトル。詳細は #calibrateCamera を参照。
        stdDeviationsExtrinsics - 外部パラメータについて推定された標準偏差の出力ベクトル。詳細は #calibrateCamera を参照。
        stdDeviationsObjPoints - 精緻化されたキャリブレーションパターン点の座標について推定された標準偏差の出力ベクトル。objectPoints[0] ベクトルと同じサイズおよび順序を持つ。このパラメータは標準キャリブレーション手法では無視される。
        perViewErrors - 各パターンビューについて推定されたRMS再投影誤差の出力ベクトル。
        flags - ゼロまたはいくつかの定義済み値の組み合わせとなりうる各種フラグ。詳細は #calibrateCamera を参照。物体解放法を使用する場合、キャリブレーション時間が大幅に長くなることがある。 CALIB_USE_QR または CALIB_USE_LU を使用すると高速にキャリブレーションできるが、まれに精度が低く安定性に欠ける可能性がある。
        criteria - 反復最適化アルゴリズムの終了条件。
        戻り値:
        全体のRMS再投影誤差。この関数は、各ビューについてカメラの内部パラメータと外部パラメータを推定する。物体解放(object-releasing)拡張は CITE: strobl2011iccv に従い、#calibrateCamera と同じ最適化コアを使用する。その他の詳細な説明については #calibrateCamera を参照。SEE: calibrateCamera, findChessboardCorners, solvePnP, initCameraMatrix2D, stereoCalibrate, undistort
      • calibrateCameraROExtended

        public static double calibrateCameraROExtended​(java.util.List<Mat> objectPoints,
                                                       java.util.List<Mat> imagePoints,
                                                       Size imageSize,
                                                       int iFixedPoint,
                                                       Mat cameraMatrix,
                                                       Mat distCoeffs,
                                                       java.util.List<Mat> rvecs,
                                                       java.util.List<Mat> tvecs,
                                                       Mat newObjPoints,
                                                       Mat stdDeviationsIntrinsics,
                                                       Mat stdDeviationsExtrinsics,
                                                       Mat stdDeviationsObjPoints,
                                                       Mat perViewErrors,
                                                       int flags)
        Finds the camera intrinsic and extrinsic parameters from several views of a calibration pattern. This function is an extension of #calibrateCamera with the method of releasing object which was proposed in CITE: strobl2011iccv. In many common cases with inaccurate, unmeasured, roughly planar targets (calibration plates), this method can dramatically improve the precision of the estimated camera parameters. Both the object-releasing method and standard method are supported by this function. Use the parameter iFixedPoint for method selection. In the internal implementation, #calibrateCamera is a wrapper for this function.
        引数:
        objectPoints - キャリブレーションパターン座標空間におけるキャリブレーションパターン点のベクトルのベクトル。詳細は #calibrateCamera を参照。物体解放法(object releasing method)を使用する場合、各ビューで同一のキャリブレーションボードを使用し、それが完全に見えていなければならず、すべての objectPoints[i] が同一で、すべての点がおおむね平面に近くなければならない。キャリブレーションターゲットは剛体でなければならない。少なくとも、画像取得のために(キャリブレーションターゲットではなく)カメラを移動させる場合は静止していなければならない。
        imagePoints - キャリブレーションパターン点の投影のベクトルのベクトル。詳細は #calibrateCamera を参照。
        imageSize - 内部カメラ行列を初期化するためだけに使用される画像のサイズ。
        iFixedPoint - 固定する objectPoints[0] 内の3D物体点のインデックス。これはキャリブレーション手法の選択スイッチとしても機能する。物体解放法を使用する場合は [1, objectPoints[0].size()-2] の範囲でパラメータを渡し、そうでない場合はこの範囲外の値を渡すと標準キャリブレーション手法が選択される。通常、物体解放法を利用する場合はキャリブレーションボードグリッドの右上隅の点を固定することが推奨される。 \cite strobl2011iccv によれば、他の2点も固定される。この実装では、objectPoints[0].front と objectPoints[0].back.z が使用される。物体解放法では、これら3つの固定点の座標が十分に正確である場合にのみ、正確な rvecs、tvecs、newObjPoints が得られる。
        cameraMatrix - 3x3浮動小数点のカメラ行列の出力。詳細は #calibrateCamera を参照。
        distCoeffs - 歪み係数の出力ベクトル。詳細は #calibrateCamera を参照。
        rvecs - 各パターンビューについて推定された回転ベクトルの出力ベクトル。詳細は #calibrateCamera を参照。
        tvecs - 各パターンビューについて推定された並進ベクトルの出力ベクトル。
        newObjPoints - キャリブレーションパターン点の更新された出力ベクトル。座標は3つの固定点に基づいてスケーリングされる場合がある。返される座標は、上記の3つの固定点が正確である場合にのみ正確である。不要であれば noArray() を渡せる。このパラメータは標準キャリブレーション手法では無視される。
        stdDeviationsIntrinsics - 内部パラメータについて推定された標準偏差の出力ベクトル。詳細は #calibrateCamera を参照。
        stdDeviationsExtrinsics - 外部パラメータについて推定された標準偏差の出力ベクトル。詳細は #calibrateCamera を参照。
        stdDeviationsObjPoints - 精緻化されたキャリブレーションパターン点の座標について推定された標準偏差の出力ベクトル。objectPoints[0] ベクトルと同じサイズおよび順序を持つ。このパラメータは標準キャリブレーション手法では無視される。
        perViewErrors - 各パターンビューについて推定されたRMS再投影誤差の出力ベクトル。
        flags - ゼロまたはいくつかの定義済み値の組み合わせとなりうる各種フラグ。詳細は #calibrateCamera を参照。物体解放法を使用する場合、キャリブレーション時間が大幅に長くなることがある。 CALIB_USE_QR または CALIB_USE_LU を使用すると高速にキャリブレーションできるが、まれに精度が低く安定性に欠ける可能性がある。
        戻り値:
        全体のRMS再投影誤差。この関数は、各ビューについてカメラの内部パラメータと外部パラメータを推定する。物体解放(object-releasing)拡張は CITE: strobl2011iccv に従い、#calibrateCamera と同じ最適化コアを使用する。その他の詳細な説明については #calibrateCamera を参照。SEE: calibrateCamera, findChessboardCorners, solvePnP, initCameraMatrix2D, stereoCalibrate, undistort
      • calibrateCameraROExtended

        public static double calibrateCameraROExtended​(java.util.List<Mat> objectPoints,
                                                       java.util.List<Mat> imagePoints,
                                                       Size imageSize,
                                                       int iFixedPoint,
                                                       Mat cameraMatrix,
                                                       Mat distCoeffs,
                                                       java.util.List<Mat> rvecs,
                                                       java.util.List<Mat> tvecs,
                                                       Mat newObjPoints,
                                                       Mat stdDeviationsIntrinsics,
                                                       Mat stdDeviationsExtrinsics,
                                                       Mat stdDeviationsObjPoints,
                                                       Mat perViewErrors)
        Finds the camera intrinsic and extrinsic parameters from several views of a calibration pattern. This function is an extension of #calibrateCamera with the method of releasing object which was proposed in CITE: strobl2011iccv. In many common cases with inaccurate, unmeasured, roughly planar targets (calibration plates), this method can dramatically improve the precision of the estimated camera parameters. Both the object-releasing method and standard method are supported by this function. Use the parameter iFixedPoint for method selection. In the internal implementation, #calibrateCamera is a wrapper for this function.
        引数:
        objectPoints - キャリブレーションパターン座標空間におけるキャリブレーションパターン点のベクトルのベクトル。詳細は #calibrateCamera を参照。物体解放法(object releasing method)を使用する場合、各ビューで同一のキャリブレーションボードを使用し、それが完全に見えていなければならず、すべての objectPoints[i] が同一で、すべての点がおおむね平面に近くなければならない。キャリブレーションターゲットは剛体でなければならない。少なくとも、画像取得のために(キャリブレーションターゲットではなく)カメラを移動させる場合は静止していなければならない。
        imagePoints - キャリブレーションパターン点の投影のベクトルのベクトル。詳細は #calibrateCamera を参照。
        imageSize - 内部カメラ行列を初期化するためだけに使用される画像のサイズ。
        iFixedPoint - 固定する objectPoints[0] 内の3D物体点のインデックス。これはキャリブレーション手法の選択スイッチとしても機能する。物体解放法を使用する場合は [1, objectPoints[0].size()-2] の範囲でパラメータを渡し、そうでない場合はこの範囲外の値を渡すと標準キャリブレーション手法が選択される。通常、物体解放法を利用する場合はキャリブレーションボードグリッドの右上隅の点を固定することが推奨される。 \cite strobl2011iccv によれば、他の2点も固定される。この実装では、objectPoints[0].front と objectPoints[0].back.z が使用される。物体解放法では、これら3つの固定点の座標が十分に正確である場合にのみ、正確な rvecs、tvecs、newObjPoints が得られる。
        cameraMatrix - 3x3浮動小数点のカメラ行列の出力。詳細は #calibrateCamera を参照。
        distCoeffs - 歪み係数の出力ベクトル。詳細は #calibrateCamera を参照。
        rvecs - 各パターンビューについて推定された回転ベクトルの出力ベクトル。詳細は #calibrateCamera を参照。
        tvecs - 各パターンビューについて推定された並進ベクトルの出力ベクトル。
        newObjPoints - キャリブレーションパターン点の更新された出力ベクトル。座標は3つの固定点に基づいてスケーリングされる場合がある。返される座標は、上記の3つの固定点が正確である場合にのみ正確である。不要であれば noArray() を渡せる。このパラメータは標準キャリブレーション手法では無視される。
        stdDeviationsIntrinsics - 内部パラメータについて推定された標準偏差の出力ベクトル。詳細は #calibrateCamera を参照。
        stdDeviationsExtrinsics - 外部パラメータについて推定された標準偏差の出力ベクトル。詳細は #calibrateCamera を参照。
        stdDeviationsObjPoints - 精緻化されたキャリブレーションパターン点の座標について推定された標準偏差の出力ベクトル。objectPoints[0] ベクトルと同じサイズおよび順序を持つ。このパラメータは標準キャリブレーション手法では無視される。
        perViewErrors - 各パターンビューについて推定されたRMS再投影誤差の出力ベクトル。詳細は #calibrateCamera を参照。物体解放法を使用する場合、キャリブレーション時間が大幅に長くなることがある。 CALIB_USE_QR または CALIB_USE_LU を使用すると高速にキャリブレーションできるが、まれに精度が低く安定性に欠ける可能性がある。
        戻り値:
        全体のRMS再投影誤差。この関数は、各ビューについてカメラの内部パラメータと外部パラメータを推定する。物体解放(object-releasing)拡張は CITE: strobl2011iccv に従い、#calibrateCamera と同じ最適化コアを使用する。その他の詳細な説明については #calibrateCamera を参照。SEE: calibrateCamera, findChessboardCorners, solvePnP, initCameraMatrix2D, stereoCalibrate, undistort
      • calibrateCameraRO

        public static double calibrateCameraRO​(java.util.List<Mat> objectPoints,
                                               java.util.List<Mat> imagePoints,
                                               Size imageSize,
                                               int iFixedPoint,
                                               Mat cameraMatrix,
                                               Mat distCoeffs,
                                               java.util.List<Mat> rvecs,
                                               java.util.List<Mat> tvecs,
                                               Mat newObjPoints,
                                               int flags,
                                               TermCriteria criteria)
      • calibrateCameraRO

        public static double calibrateCameraRO​(java.util.List<Mat> objectPoints,
                                               java.util.List<Mat> imagePoints,
                                               Size imageSize,
                                               int iFixedPoint,
                                               Mat cameraMatrix,
                                               Mat distCoeffs,
                                               java.util.List<Mat> rvecs,
                                               java.util.List<Mat> tvecs,
                                               Mat newObjPoints,
                                               int flags)
      • calibrateCameraRO

        public static double calibrateCameraRO​(java.util.List<Mat> objectPoints,
                                               java.util.List<Mat> imagePoints,
                                               Size imageSize,
                                               int iFixedPoint,
                                               Mat cameraMatrix,
                                               Mat distCoeffs,
                                               java.util.List<Mat> rvecs,
                                               java.util.List<Mat> tvecs,
                                               Mat newObjPoints)
      • stereoCalibrateExtended

        public static double stereoCalibrateExtended​(java.util.List<Mat> objectPoints,
                                                     java.util.List<Mat> imagePoints1,
                                                     java.util.List<Mat> imagePoints2,
                                                     Mat cameraMatrix1,
                                                     Mat distCoeffs1,
                                                     Mat cameraMatrix2,
                                                     Mat distCoeffs2,
                                                     Size imageSize,
                                                     Mat R,
                                                     Mat T,
                                                     Mat E,
                                                     Mat F,
                                                     java.util.List<Mat> rvecs,
                                                     java.util.List<Mat> tvecs,
                                                     Mat perViewErrors,
                                                     int flags,
                                                     TermCriteria criteria)
        Calibrates a stereo camera set up. This function finds the intrinsic parameters for each of the two cameras and the extrinsic parameters between the two cameras.
        引数:
        objectPoints - キャリブレーションパターン点のベクトルのベクトル。REF: calibrateCamera と同じ構造。各パターンビューについて、両方のカメラが同じ物体点を見る必要がある。したがって、objectPoints.size()、imagePoints1.size()、imagePoints2.size() は等しくなければならず、また各 i に対して objectPoints[i].size()、imagePoints1[i].size()、imagePoints2[i].size() も等しくなければならない。
        imagePoints1 - 1台目のカメラで観測されたキャリブレーションパターン点の投影のベクトルのベクトル。REF: calibrateCamera と同じ構造。
        imagePoints2 - 2台目のカメラで観測されたキャリブレーションパターン点の投影のベクトルのベクトル。REF: calibrateCamera と同じ構造。
        cameraMatrix1 - 1台目のカメラの入出力カメラ内部行列。REF: calibrateCamera と同じ。さらに、ステレオの場合は追加のフラグを使用できる(下記参照)。
        distCoeffs1 - 歪み係数の入出力ベクトル。REF: calibrateCamera と同じ。
        cameraMatrix2 - 2台目のカメラの入出力カメラ内部行列。cameraMatrix1 の説明を参照。
        distCoeffs2 - 2台目のカメラのレンズ歪み係数の入出力。distCoeffs1 の説明を参照。
        imageSize - カメラ内部行列の初期化にのみ使用される画像のサイズ。
        R - 出力回転行列。並進ベクトル T とともに、この行列は1台目のカメラの座標系で与えられた点を2台目のカメラの座標系の点に移す。より技術的に言えば、R と T の組は1台目のカメラの座標系から2台目のカメラの座標系への基底変換を行う。その双対性により、この組は2台目のカメラ座標系に対する1台目のカメラの位置と等価である。
        T - 出力並進ベクトル。上記の説明を参照。
        E - 出力基本行列(essential matrix)。
        F - 出力基礎行列(fundamental matrix)。
        rvecs - ステレオペアの1台目のカメラの座標系において、各パターンビューについて推定された回転ベクトル(REF: Rodrigues)の出力ベクトル(例: std::vector<cv::Mat>)。より詳しくは、各 i 番目の回転ベクトルは、対応する i 番目の並進ベクトル(次の出力パラメータの説明を参照)とともに、キャリブレーションパターンを物体座標空間(物体点が指定される空間)からステレオペアの1台目のカメラのカメラ座標空間へ移す。より技術的に言えば、i 番目の回転ベクトルと並進ベクトルの組は、物体座標空間からステレオペアの1台目のカメラのカメラ座標空間への基底変換を行う。
        tvecs - 各パターンビューについて推定された並進ベクトルの出力ベクトル。前の出力パラメータ(rvecs)のパラメータ説明を参照。
        perViewErrors - 各パターンビューについて推定されたRMS再投影誤差の出力ベクトル。
        flags - Different flags that may be zero or a combination of the following values:
        • REF: CALIB_FIX_INTRINSIC cameraMatrix? と distCoeffs? を固定し、R, T, E, F の行列のみが推定されるようにする。
        • REF: CALIB_USE_INTRINSIC_GUESS 指定されたフラグに従って内部パラメータの一部またはすべてを最適化する。初期値はユーザが提供する。
        • REF: CALIB_USE_EXTRINSIC_GUESS R と T に、さらに最適化される有効な初期値が含まれている。そうでない場合、R と T はパターンビューの中央値(各次元を別々に)に初期化される。
        • REF: CALIB_FIX_PRINCIPAL_POINT 最適化の間、主点を固定する。
        • REF: CALIB_FIX_FOCAL_LENGTH \(f^{(j)}_x\) と \(f^{(j)}_y\) を固定する。
        • REF: CALIB_FIX_ASPECT_RATIO \(f^{(j)}_y\) を最適化する。比 \(f^{(j)}_x/f^{(j)}_y\) を固定する。
        • REF: CALIB_SAME_FOCAL_LENGTH \(f^{(0)}_x=f^{(1)}_x\) と \(f^{(0)}_y=f^{(1)}_y\) を強制する。
        • REF: CALIB_ZERO_TANGENT_DIST 各カメラの接線方向の歪み係数を0に設定し、その値で固定する。
        • REF: CALIB_FIX_K1,..., REF: CALIB_FIX_K6 最適化の際に対応する放射方向の歪み係数を変更しない。REF: CALIB_USE_INTRINSIC_GUESS が設定されている場合は、与えられた distCoeffs 行列の係数が使用される。そうでない場合は0に設定される。
        • REF: CALIB_RATIONAL_MODEL 係数 k4、k5、k6 を有効にする。後方互換性を保つため、キャリブレーション関数に有理モデルを使用させ8個の係数を返させるには、この追加フラグを明示的に指定する必要がある。フラグが設定されていない場合、関数は5個の歪み係数のみを計算して返す。
        • REF: CALIB_THIN_PRISM_MODEL 係数 s1、s2、s3、s4 を有効にする。後方互換性を保つため、キャリブレーション関数に薄プリズムモデルを使用させ12個の係数を返させるには、この追加フラグを明示的に指定する必要がある。フラグが設定されていない場合、関数は5個の歪み係数のみを計算して返す。
        • REF: CALIB_FIX_S1_S2_S3_S4 薄プリズム歪み係数は最適化の間変更されない。 REF: CALIB_USE_INTRINSIC_GUESS が設定されている場合、与えられた distCoeffs 行列の係数が使用される。そうでない場合は0に設定される。
        • REF: CALIB_TILTED_MODEL 係数 tauX と tauY を有効にする。後方互換性を保つため、キャリブレーション関数に傾斜センサモデルを使用させ14個の係数を返させるには、この追加フラグを明示的に指定する必要がある。フラグが設定されていない場合、関数は5個の歪み係数のみを計算して返す。
        • REF: CALIB_FIX_TAUX_TAUY 傾斜センサモデルの係数は最適化の間変更されない。 REF: CALIB_USE_INTRINSIC_GUESS が設定されている場合、与えられた distCoeffs 行列の係数が使用される。そうでない場合は0に設定される。
        criteria - 反復最適化アルゴリズムの終了条件。この関数はステレオペアを構成する2台のカメラ間の変換を推定する。相対的な位置と姿勢が固定されたステレオカメラにおいて、ある物体の第1カメラに対する姿勢と第2カメラに対する姿勢をそれぞれ ( \(R_1\),\(T_1\) ) と (\(R_2\),\(T_2\)) として計算したとすると、これらの姿勢は必ず互いに関係している。これは、2台のカメラ間の相対的な位置と姿勢 (\(R\),\(T\)) が既知であれば、(\(R_1\),\(T_1\)) が与えられたときに (\(R_2\),\(T_2\)) を計算できることを意味する。これがこの関数の行う処理である。次を満たす (\(R\),\(T\)) を計算する: \(R_2=R R_1\) \(T_2=R T_1 + T.\) したがって、第1カメラの座標系における3D点の座標表現が与えられたとき、その点の第2カメラの座標系における座標表現を計算できる: \(\begin{bmatrix} X_2 \\ Y_2 \\ Z_2 \\ 1 \end{bmatrix} = \begin{bmatrix} R & T \\ 0 & 1 \end{bmatrix} \begin{bmatrix} X_1 \\ Y_1 \\ Z_1 \\ 1 \end{bmatrix}.\) 必要に応じて、本質行列 E を計算する: \(E= \vecthreethree{0}{-T_2}{T_1}{T_2}{0}{-T_0}{-T_1}{T_0}{0} R\) ここで \(T_i\) は並進ベクトル \(T\) の成分である: \(T=[T_0, T_1, T_2]^T\) 。さらに、この関数は基礎行列 F も計算できる: \(F = cameraMatrix2^{-T}\cdot E \cdot cameraMatrix1^{-1}\) ステレオ関連の情報のほかに、この関数は2台のカメラそれぞれのフルキャリブレーションも実行できる。ただし、パラメータ空間の次元が高く、入力データにノイズが含まれるため、関数が正しい解から発散することがある。各カメラの内部パラメータを個別に(たとえば #calibrateCamera を使用して)高精度に推定できる場合は、そうしてから計算した内部パラメータとともに REF: CALIB_FIX_INTRINSIC フラグを関数に渡すことが推奨される。そうでない場合、すべてのパラメータを一度に推定するなら、いくつかのパラメータを制限するのが妥当である。たとえば REF: CALIB_SAME_FOCAL_LENGTH と REF: CALIB_ZERO_TANGENT_DIST フラグを渡すことで、これは通常妥当な仮定である。#calibrateCamera と同様に、この関数は両カメラの利用可能なすべてのビューのすべての点について、再投影誤差の合計を最小化する。関数は再投影誤差の最終的な値を返す。
        戻り値:
        自動生成
      • stereoCalibrateExtended

        public static double stereoCalibrateExtended​(java.util.List<Mat> objectPoints,
                                                     java.util.List<Mat> imagePoints1,
                                                     java.util.List<Mat> imagePoints2,
                                                     Mat cameraMatrix1,
                                                     Mat distCoeffs1,
                                                     Mat cameraMatrix2,
                                                     Mat distCoeffs2,
                                                     Size imageSize,
                                                     Mat R,
                                                     Mat T,
                                                     Mat E,
                                                     Mat F,
                                                     java.util.List<Mat> rvecs,
                                                     java.util.List<Mat> tvecs,
                                                     Mat perViewErrors,
                                                     int flags)
        Calibrates a stereo camera set up. This function finds the intrinsic parameters for each of the two cameras and the extrinsic parameters between the two cameras.
        引数:
        objectPoints - キャリブレーションパターン点のベクトルのベクトル。REF: calibrateCamera と同じ構造。各パターンビューについて、両方のカメラが同じ物体点を見る必要がある。したがって、objectPoints.size()、imagePoints1.size()、imagePoints2.size() は等しくなければならず、また各 i に対して objectPoints[i].size()、imagePoints1[i].size()、imagePoints2[i].size() も等しくなければならない。
        imagePoints1 - 1台目のカメラで観測されたキャリブレーションパターン点の投影のベクトルのベクトル。REF: calibrateCamera と同じ構造。
        imagePoints2 - 2台目のカメラで観測されたキャリブレーションパターン点の投影のベクトルのベクトル。REF: calibrateCamera と同じ構造。
        cameraMatrix1 - 1台目のカメラの入出力カメラ内部行列。REF: calibrateCamera と同じ。さらに、ステレオの場合は追加のフラグを使用できる(下記参照)。
        distCoeffs1 - 歪み係数の入出力ベクトル。REF: calibrateCamera と同じ。
        cameraMatrix2 - 2台目のカメラの入出力カメラ内部行列。cameraMatrix1 の説明を参照。
        distCoeffs2 - 2台目のカメラのレンズ歪み係数の入出力。distCoeffs1 の説明を参照。
        imageSize - カメラ内部行列の初期化にのみ使用される画像のサイズ。
        R - 出力回転行列。並進ベクトル T とともに、この行列は1台目のカメラの座標系で与えられた点を2台目のカメラの座標系の点に移す。より技術的に言えば、R と T の組は1台目のカメラの座標系から2台目のカメラの座標系への基底変換を行う。その双対性により、この組は2台目のカメラ座標系に対する1台目のカメラの位置と等価である。
        T - 出力並進ベクトル。上記の説明を参照。
        E - 出力基本行列(essential matrix)。
        F - 出力基礎行列(fundamental matrix)。
        rvecs - ステレオペアの1台目のカメラの座標系において、各パターンビューについて推定された回転ベクトル(REF: Rodrigues)の出力ベクトル(例: std::vector<cv::Mat>)。より詳しくは、各 i 番目の回転ベクトルは、対応する i 番目の並進ベクトル(次の出力パラメータの説明を参照)とともに、キャリブレーションパターンを物体座標空間(物体点が指定される空間)からステレオペアの1台目のカメラのカメラ座標空間へ移す。より技術的に言えば、i 番目の回転ベクトルと並進ベクトルの組は、物体座標空間からステレオペアの1台目のカメラのカメラ座標空間への基底変換を行う。
        tvecs - 各パターンビューについて推定された並進ベクトルの出力ベクトル。前の出力パラメータ(rvecs)のパラメータ説明を参照。
        perViewErrors - 各パターンビューについて推定されたRMS再投影誤差の出力ベクトル。
        flags - Different flags that may be zero or a combination of the following values:
        • REF: CALIB_FIX_INTRINSIC cameraMatrix? と distCoeffs? を固定し、R, T, E, F の行列のみが推定されるようにする。
        • REF: CALIB_USE_INTRINSIC_GUESS 指定されたフラグに従って内部パラメータの一部またはすべてを最適化する。初期値はユーザが提供する。
        • REF: CALIB_USE_EXTRINSIC_GUESS R と T に、さらに最適化される有効な初期値が含まれている。そうでない場合、R と T はパターンビューの中央値(各次元を別々に)に初期化される。
        • REF: CALIB_FIX_PRINCIPAL_POINT 最適化の間、主点を固定する。
        • REF: CALIB_FIX_FOCAL_LENGTH \(f^{(j)}_x\) と \(f^{(j)}_y\) を固定する。
        • REF: CALIB_FIX_ASPECT_RATIO \(f^{(j)}_y\) を最適化する。比 \(f^{(j)}_x/f^{(j)}_y\) を固定する。
        • REF: CALIB_SAME_FOCAL_LENGTH \(f^{(0)}_x=f^{(1)}_x\) と \(f^{(0)}_y=f^{(1)}_y\) を強制する。
        • REF: CALIB_ZERO_TANGENT_DIST 各カメラの接線方向の歪み係数を0に設定し、その値で固定する。
        • REF: CALIB_FIX_K1,..., REF: CALIB_FIX_K6 最適化の際に対応する放射方向の歪み係数を変更しない。REF: CALIB_USE_INTRINSIC_GUESS が設定されている場合は、与えられた distCoeffs 行列の係数が使用される。そうでない場合は0に設定される。
        • REF: CALIB_RATIONAL_MODEL 係数 k4、k5、k6 を有効にする。後方互換性を保つため、キャリブレーション関数に有理モデルを使用させ8個の係数を返させるには、この追加フラグを明示的に指定する必要がある。フラグが設定されていない場合、関数は5個の歪み係数のみを計算して返す。
        • REF: CALIB_THIN_PRISM_MODEL 係数 s1、s2、s3、s4 を有効にする。後方互換性を保つため、キャリブレーション関数に薄プリズムモデルを使用させ12個の係数を返させるには、この追加フラグを明示的に指定する必要がある。フラグが設定されていない場合、関数は5個の歪み係数のみを計算して返す。
        • REF: CALIB_FIX_S1_S2_S3_S4 薄プリズム歪み係数は最適化の間変更されない。 REF: CALIB_USE_INTRINSIC_GUESS が設定されている場合、与えられた distCoeffs 行列の係数が使用される。そうでない場合は0に設定される。
        • REF: CALIB_TILTED_MODEL 係数 tauX と tauY を有効にする。後方互換性を保つため、キャリブレーション関数に傾斜センサモデルを使用させ14個の係数を返させるには、この追加フラグを明示的に指定する必要がある。フラグが設定されていない場合、関数は5個の歪み係数のみを計算して返す。
        • REF: CALIB_FIX_TAUX_TAUY 傾斜センサモデルの係数は最適化の間変更されない。 REF: CALIB_USE_INTRINSIC_GUESS が設定されている場合、与えられた distCoeffs 行列の係数が使用される。そうでない場合は0に設定される。
        The function estimates the transformation between two cameras making a stereo pair. If one computes the poses of an object relative to the first camera and to the second camera, ( \(R_1\),\(T_1\) ) and (\(R_2\),\(T_2\)), respectively, for a stereo camera where the relative position and orientation between the two cameras are fixed, then those poses definitely relate to each other. This means, if the relative position and orientation (\(R\),\(T\)) of the two cameras is known, it is possible to compute (\(R_2\),\(T_2\)) when (\(R_1\),\(T_1\)) is given. This is what the described function does. It computes (\(R\),\(T\)) such that: \(R_2=R R_1\) \(T_2=R T_1 + T.\) Therefore, one can compute the coordinate representation of a 3D point for the second camera's coordinate system when given the point's coordinate representation in the first camera's coordinate system: \(\begin{bmatrix} X_2 \\ Y_2 \\ Z_2 \\ 1 \end{bmatrix} = \begin{bmatrix} R & T \\ 0 & 1 \end{bmatrix} \begin{bmatrix} X_1 \\ Y_1 \\ Z_1 \\ 1 \end{bmatrix}.\) Optionally, it computes the essential matrix E: \(E= \vecthreethree{0}{-T_2}{T_1}{T_2}{0}{-T_0}{-T_1}{T_0}{0} R\) where \(T_i\) are components of the translation vector \(T\) : \(T=[T_0, T_1, T_2]^T\) . And the function can also compute the fundamental matrix F: \(F = cameraMatrix2^{-T}\cdot E \cdot cameraMatrix1^{-1}\) Besides the stereo-related information, the function can also perform a full calibration of each of the two cameras. However, due to the high dimensionality of the parameter space and noise in the input data, the function can diverge from the correct solution. If the intrinsic parameters can be estimated with high accuracy for each of the cameras individually (for example, using #calibrateCamera ), you are recommended to do so and then pass REF: CALIB_FIX_INTRINSIC flag to the function along with the computed intrinsic parameters. Otherwise, if all the parameters are estimated at once, it makes sense to restrict some parameters, for example, pass REF: CALIB_SAME_FOCAL_LENGTH and REF: CALIB_ZERO_TANGENT_DIST flags, which is usually a reasonable assumption. Similarly to #calibrateCamera, the function minimizes the total re-projection error for all the points in all the available views from both cameras. The function returns the final value of the re-projection error.
        戻り値:
        自動生成
      • stereoCalibrateExtended

        public static double stereoCalibrateExtended​(java.util.List<Mat> objectPoints,
                                                     java.util.List<Mat> imagePoints1,
                                                     java.util.List<Mat> imagePoints2,
                                                     Mat cameraMatrix1,
                                                     Mat distCoeffs1,
                                                     Mat cameraMatrix2,
                                                     Mat distCoeffs2,
                                                     Size imageSize,
                                                     Mat R,
                                                     Mat T,
                                                     Mat E,
                                                     Mat F,
                                                     java.util.List<Mat> rvecs,
                                                     java.util.List<Mat> tvecs,
                                                     Mat perViewErrors)
        Calibrates a stereo camera set up. This function finds the intrinsic parameters for each of the two cameras and the extrinsic parameters between the two cameras.
        引数:
        objectPoints - キャリブレーションパターン点のベクトルのベクトル。REF: calibrateCamera と同じ構造。各パターンビューについて、両方のカメラが同じ物体点を見る必要がある。したがって、objectPoints.size()、imagePoints1.size()、imagePoints2.size() は等しくなければならず、また各 i に対して objectPoints[i].size()、imagePoints1[i].size()、imagePoints2[i].size() も等しくなければならない。
        imagePoints1 - 1台目のカメラで観測されたキャリブレーションパターン点の投影のベクトルのベクトル。REF: calibrateCamera と同じ構造。
        imagePoints2 - 2台目のカメラで観測されたキャリブレーションパターン点の投影のベクトルのベクトル。REF: calibrateCamera と同じ構造。
        cameraMatrix1 - 1台目のカメラの入出力カメラ内部行列。REF: calibrateCamera と同じ。さらに、ステレオの場合は追加のフラグを使用できる(下記参照)。
        distCoeffs1 - 歪み係数の入出力ベクトル。REF: calibrateCamera と同じ。
        cameraMatrix2 - 2台目のカメラの入出力カメラ内部行列。cameraMatrix1 の説明を参照。
        distCoeffs2 - 2台目のカメラのレンズ歪み係数の入出力。distCoeffs1 の説明を参照。
        imageSize - カメラ内部行列の初期化にのみ使用される画像のサイズ。
        R - 出力回転行列。並進ベクトル T とともに、この行列は1台目のカメラの座標系で与えられた点を2台目のカメラの座標系の点に移す。より技術的に言えば、R と T の組は1台目のカメラの座標系から2台目のカメラの座標系への基底変換を行う。その双対性により、この組は2台目のカメラ座標系に対する1台目のカメラの位置と等価である。
        T - 出力並進ベクトル。上記の説明を参照。
        E - 出力基本行列(essential matrix)。
        F - 出力基礎行列(fundamental matrix)。
        rvecs - ステレオペアの1台目のカメラの座標系において、各パターンビューについて推定された回転ベクトル(REF: Rodrigues)の出力ベクトル(例: std::vector<cv::Mat>)。より詳しくは、各 i 番目の回転ベクトルは、対応する i 番目の並進ベクトル(次の出力パラメータの説明を参照)とともに、キャリブレーションパターンを物体座標空間(物体点が指定される空間)からステレオペアの1台目のカメラのカメラ座標空間へ移す。より技術的に言えば、i 番目の回転ベクトルと並進ベクトルの組は、物体座標空間からステレオペアの1台目のカメラのカメラ座標空間への基底変換を行う。
        tvecs - 各パターンビューについて推定された並進ベクトルの出力ベクトル。前の出力パラメータ(rvecs)のパラメータ説明を参照。
        perViewErrors - Output vector of the RMS re-projection error estimated for each pattern view.
        • REF: CALIB_FIX_INTRINSIC cameraMatrix? と distCoeffs? を固定し、R, T, E, F の行列のみが推定されるようにする。
        • REF: CALIB_USE_INTRINSIC_GUESS 指定されたフラグに従って内部パラメータの一部またはすべてを最適化する。初期値はユーザが提供する。
        • REF: CALIB_USE_EXTRINSIC_GUESS R と T に、さらに最適化される有効な初期値が含まれている。そうでない場合、R と T はパターンビューの中央値(各次元を別々に)に初期化される。
        • REF: CALIB_FIX_PRINCIPAL_POINT 最適化の間、主点を固定する。
        • REF: CALIB_FIX_FOCAL_LENGTH \(f^{(j)}_x\) と \(f^{(j)}_y\) を固定する。
        • REF: CALIB_FIX_ASPECT_RATIO \(f^{(j)}_y\) を最適化する。比 \(f^{(j)}_x/f^{(j)}_y\) を固定する。
        • REF: CALIB_SAME_FOCAL_LENGTH \(f^{(0)}_x=f^{(1)}_x\) と \(f^{(0)}_y=f^{(1)}_y\) を強制する。
        • REF: CALIB_ZERO_TANGENT_DIST 各カメラの接線方向の歪み係数を0に設定し、その値で固定する。
        • REF: CALIB_FIX_K1,..., REF: CALIB_FIX_K6 最適化の際に対応する放射方向の歪み係数を変更しない。REF: CALIB_USE_INTRINSIC_GUESS が設定されている場合は、与えられた distCoeffs 行列の係数が使用される。そうでない場合は0に設定される。
        • REF: CALIB_RATIONAL_MODEL 係数 k4、k5、k6 を有効にする。後方互換性を保つため、キャリブレーション関数に有理モデルを使用させ8個の係数を返させるには、この追加フラグを明示的に指定する必要がある。フラグが設定されていない場合、関数は5個の歪み係数のみを計算して返す。
        • REF: CALIB_THIN_PRISM_MODEL 係数 s1、s2、s3、s4 を有効にする。後方互換性を保つため、キャリブレーション関数に薄プリズムモデルを使用させ12個の係数を返させるには、この追加フラグを明示的に指定する必要がある。フラグが設定されていない場合、関数は5個の歪み係数のみを計算して返す。
        • REF: CALIB_FIX_S1_S2_S3_S4 薄プリズム歪み係数は最適化の間変更されない。 REF: CALIB_USE_INTRINSIC_GUESS が設定されている場合、与えられた distCoeffs 行列の係数が使用される。そうでない場合は0に設定される。
        • REF: CALIB_TILTED_MODEL 係数 tauX と tauY を有効にする。後方互換性を保つため、キャリブレーション関数に傾斜センサモデルを使用させ14個の係数を返させるには、この追加フラグを明示的に指定する必要がある。フラグが設定されていない場合、関数は5個の歪み係数のみを計算して返す。
        • REF: CALIB_FIX_TAUX_TAUY 傾斜センサモデルの係数は最適化の間変更されない。 REF: CALIB_USE_INTRINSIC_GUESS が設定されている場合、与えられた distCoeffs 行列の係数が使用される。そうでない場合は0に設定される。
        The function estimates the transformation between two cameras making a stereo pair. If one computes the poses of an object relative to the first camera and to the second camera, ( \(R_1\),\(T_1\) ) and (\(R_2\),\(T_2\)), respectively, for a stereo camera where the relative position and orientation between the two cameras are fixed, then those poses definitely relate to each other. This means, if the relative position and orientation (\(R\),\(T\)) of the two cameras is known, it is possible to compute (\(R_2\),\(T_2\)) when (\(R_1\),\(T_1\)) is given. This is what the described function does. It computes (\(R\),\(T\)) such that: \(R_2=R R_1\) \(T_2=R T_1 + T.\) Therefore, one can compute the coordinate representation of a 3D point for the second camera's coordinate system when given the point's coordinate representation in the first camera's coordinate system: \(\begin{bmatrix} X_2 \\ Y_2 \\ Z_2 \\ 1 \end{bmatrix} = \begin{bmatrix} R & T \\ 0 & 1 \end{bmatrix} \begin{bmatrix} X_1 \\ Y_1 \\ Z_1 \\ 1 \end{bmatrix}.\) Optionally, it computes the essential matrix E: \(E= \vecthreethree{0}{-T_2}{T_1}{T_2}{0}{-T_0}{-T_1}{T_0}{0} R\) where \(T_i\) are components of the translation vector \(T\) : \(T=[T_0, T_1, T_2]^T\) . And the function can also compute the fundamental matrix F: \(F = cameraMatrix2^{-T}\cdot E \cdot cameraMatrix1^{-1}\) Besides the stereo-related information, the function can also perform a full calibration of each of the two cameras. However, due to the high dimensionality of the parameter space and noise in the input data, the function can diverge from the correct solution. If the intrinsic parameters can be estimated with high accuracy for each of the cameras individually (for example, using #calibrateCamera ), you are recommended to do so and then pass REF: CALIB_FIX_INTRINSIC flag to the function along with the computed intrinsic parameters. Otherwise, if all the parameters are estimated at once, it makes sense to restrict some parameters, for example, pass REF: CALIB_SAME_FOCAL_LENGTH and REF: CALIB_ZERO_TANGENT_DIST flags, which is usually a reasonable assumption. Similarly to #calibrateCamera, the function minimizes the total re-projection error for all the points in all the available views from both cameras. The function returns the final value of the re-projection error.
        戻り値:
        自動生成
      • stereoCalibrate

        public static double stereoCalibrate​(java.util.List<Mat> objectPoints,
                                             java.util.List<Mat> imagePoints1,
                                             java.util.List<Mat> imagePoints2,
                                             Mat cameraMatrix1,
                                             Mat distCoeffs1,
                                             Mat cameraMatrix2,
                                             Mat distCoeffs2,
                                             Size imageSize,
                                             Mat R,
                                             Mat T,
                                             Mat E,
                                             Mat F,
                                             int flags,
                                             TermCriteria criteria)
      • stereoCalibrate

        public static double stereoCalibrate​(java.util.List<Mat> objectPoints,
                                             java.util.List<Mat> imagePoints1,
                                             java.util.List<Mat> imagePoints2,
                                             Mat cameraMatrix1,
                                             Mat distCoeffs1,
                                             Mat cameraMatrix2,
                                             Mat distCoeffs2,
                                             Size imageSize,
                                             Mat R,
                                             Mat T,
                                             Mat E,
                                             Mat F,
                                             int flags)
      • stereoCalibrate

        public static double stereoCalibrate​(java.util.List<Mat> objectPoints,
                                             java.util.List<Mat> imagePoints1,
                                             java.util.List<Mat> imagePoints2,
                                             Mat cameraMatrix1,
                                             Mat distCoeffs1,
                                             Mat cameraMatrix2,
                                             Mat distCoeffs2,
                                             Size imageSize,
                                             Mat R,
                                             Mat T,
                                             Mat E,
                                             Mat F)
      • stereoCalibrate

        public static double stereoCalibrate​(java.util.List<Mat> objectPoints,
                                             java.util.List<Mat> imagePoints1,
                                             java.util.List<Mat> imagePoints2,
                                             Mat cameraMatrix1,
                                             Mat distCoeffs1,
                                             Mat cameraMatrix2,
                                             Mat distCoeffs2,
                                             Size imageSize,
                                             Mat R,
                                             Mat T,
                                             Mat E,
                                             Mat F,
                                             Mat perViewErrors,
                                             int flags,
                                             TermCriteria criteria)
      • stereoCalibrate

        public static double stereoCalibrate​(java.util.List<Mat> objectPoints,
                                             java.util.List<Mat> imagePoints1,
                                             java.util.List<Mat> imagePoints2,
                                             Mat cameraMatrix1,
                                             Mat distCoeffs1,
                                             Mat cameraMatrix2,
                                             Mat distCoeffs2,
                                             Size imageSize,
                                             Mat R,
                                             Mat T,
                                             Mat E,
                                             Mat F,
                                             Mat perViewErrors,
                                             int flags)
      • stereoCalibrate

        public static double stereoCalibrate​(java.util.List<Mat> objectPoints,
                                             java.util.List<Mat> imagePoints1,
                                             java.util.List<Mat> imagePoints2,
                                             Mat cameraMatrix1,
                                             Mat distCoeffs1,
                                             Mat cameraMatrix2,
                                             Mat distCoeffs2,
                                             Size imageSize,
                                             Mat R,
                                             Mat T,
                                             Mat E,
                                             Mat F,
                                             Mat perViewErrors)
      • registerCamerasExtended

        public static double registerCamerasExtended​(java.util.List<Mat> objectPoints1,
                                                     java.util.List<Mat> objectPoints2,
                                                     java.util.List<Mat> imagePoints1,
                                                     java.util.List<Mat> imagePoints2,
                                                     Mat cameraMatrix1,
                                                     Mat distCoeffs1,
                                                     int cameraModel1,
                                                     Mat cameraMatrix2,
                                                     Mat distCoeffs2,
                                                     int cameraModel2,
                                                     Mat R,
                                                     Mat T,
                                                     Mat E,
                                                     Mat F,
                                                     java.util.List<Mat> rvecs,
                                                     java.util.List<Mat> tvecs,
                                                     Mat perViewErrors,
                                                     int flags,
                                                     TermCriteria criteria)
        Calibrates a camera pair set up. This function finds the extrinsic parameters between the two cameras.
        引数:
        objectPoints1 - カメラ1用のキャリブレーションパターン点のベクトルのベクトル。REF: calibrateCamera の objectPoints と同様の構造であり、各パターンビューについて両カメラが同じ物体点を見る必要はない。objectPoints1.size(), imagePoints1.size() は等しくなければならず、同様に各 i について objectPoints1[i].size(), imagePoints1[i].size() も等しくなければならない。
        objectPoints2 - カメラ2用のキャリブレーションパターン点のベクトルのベクトル。objectPoints1 と同様の構造である。objectPoints2.size() と imagePoints2.size() は等しくなければならず、同様に各 i について objectPoints2[i].size(), imagePoints2[i].size() も等しくなければならない。ただし、objectPoints1[i].size() と objectPoints2[i].size() は等しくなくてもよい。
        imagePoints1 - 1台目のカメラで観測されたキャリブレーションパターン点の投影のベクトルのベクトル。REF: calibrateCamera と同じ構造。
        imagePoints2 - 2台目のカメラで観測されたキャリブレーションパターン点の投影のベクトルのベクトル。REF: calibrateCamera と同じ構造。
        cameraMatrix1 - 1台目のカメラの入出力カメラ内部行列。REF: calibrateCamera と同じ。さらに、ステレオの場合は追加のフラグを使用できる(下記参照)。
        distCoeffs1 - 歪み係数の入出力ベクトル。REF: calibrateCamera と同じ。
        cameraModel1 - Flag reflecting the type of model for camera 1 (pinhole / fisheye):
        • REF: CALIB_MODEL_PINHOLE ピンホールカメラモデル
        • REF: CALIB_MODEL_FISHEYE 魚眼カメラモデル
        cameraMatrix2 - 2台目のカメラの入出力カメラ内部行列。cameraMatrix1 の説明を参照。
        distCoeffs2 - 2台目のカメラのレンズ歪み係数の入出力。distCoeffs1 の説明を参照。
        cameraModel2 - カメラ2のモデルの種類 (pinhole / fisheye) を表すフラグ。cameraModel1 の説明を参照。
        R - 出力回転行列。並進ベクトル T とともに、この行列は1台目のカメラの座標系で与えられた点を2台目のカメラの座標系の点に移す。より技術的に言えば、R と T の組は1台目のカメラの座標系から2台目のカメラの座標系への基底変換を行う。その双対性により、この組は2台目のカメラ座標系に対する1台目のカメラの位置と等価である。
        T - 出力並進ベクトル。上記の説明を参照。
        E - 出力基本行列(essential matrix)。
        F - 出力基礎行列(fundamental matrix)。
        rvecs - ステレオペアの第1カメラの座標系における、各パターンビューについて推定された回転ベクトル ( REF: Rodrigues ) の出力ベクトル (例: std::vector<cv::Mat>)。より詳細には、i番目の各回転ベクトルは、対応するi番目の並進ベクトル(次の出力引数の説明を参照)とともに、キャリブレーションパターンを物体座標空間(物体点が指定される空間)からステレオペアの第1カメラのカメラ座標空間へ移す。より技術的に言えば、i番目の回転ベクトルと並進ベクトルの組は、物体座標空間からステレオペアの第1カメラのカメラ座標空間への基底変換を行う。
        tvecs - 各パターンビューについて推定された並進ベクトルの出力ベクトル。前の出力パラメータ(rvecs)のパラメータ説明を参照。
        perViewErrors - 各パターンビューについて推定されたRMS再投影誤差の出力ベクトル。
        flags - Different flags that may be zero or a combination of the following values:
        • REF: CALIB_USE_EXTRINSIC_GUESS R と T は有効な初期値を含んでおり、さらに最適化される。
        criteria - 反復最適化アルゴリズムの終了条件。この関数は、ステレオペアのキャリブレーションと同様に2台のカメラ間の変換を推定する。原理は REF: stereoCalibrate に密接に従う。カメラペア間の相対姿勢を推定する問題を理解するには、そこの説明を参照のこと。この関数との違いは、カメラの内部パラメータが最適化されないこと、および2台のカメラが同じキャリブレーションターゲットを観測し各物体点の絶対位置が既知である限り、視野が重なっている必要がないことである。![](pics/register_pair.png) 上の図は、このようなケースが関係し得る例を示している。さらに、混在モデル (pinhole / fisheye) のカメラペアもサポートする。#calibrateCamera と同様に、この関数は両カメラの利用可能な全ビューにおける全点の総再投影誤差を最小化する。
        戻り値:
        再投影誤差の最終値。SEE: calibrateCamera, stereoCalibrate
      • registerCamerasExtended

        public static double registerCamerasExtended​(java.util.List<Mat> objectPoints1,
                                                     java.util.List<Mat> objectPoints2,
                                                     java.util.List<Mat> imagePoints1,
                                                     java.util.List<Mat> imagePoints2,
                                                     Mat cameraMatrix1,
                                                     Mat distCoeffs1,
                                                     int cameraModel1,
                                                     Mat cameraMatrix2,
                                                     Mat distCoeffs2,
                                                     int cameraModel2,
                                                     Mat R,
                                                     Mat T,
                                                     Mat E,
                                                     Mat F,
                                                     java.util.List<Mat> rvecs,
                                                     java.util.List<Mat> tvecs,
                                                     Mat perViewErrors,
                                                     int flags)
        Calibrates a camera pair set up. This function finds the extrinsic parameters between the two cameras.
        引数:
        objectPoints1 - カメラ1用のキャリブレーションパターン点のベクトルのベクトル。REF: calibrateCamera の objectPoints と同様の構造であり、各パターンビューについて両カメラが同じ物体点を見る必要はない。objectPoints1.size(), imagePoints1.size() は等しくなければならず、同様に各 i について objectPoints1[i].size(), imagePoints1[i].size() も等しくなければならない。
        objectPoints2 - カメラ2用のキャリブレーションパターン点のベクトルのベクトル。objectPoints1 と同様の構造である。objectPoints2.size() と imagePoints2.size() は等しくなければならず、同様に各 i について objectPoints2[i].size(), imagePoints2[i].size() も等しくなければならない。ただし、objectPoints1[i].size() と objectPoints2[i].size() は等しくなくてもよい。
        imagePoints1 - 1台目のカメラで観測されたキャリブレーションパターン点の投影のベクトルのベクトル。REF: calibrateCamera と同じ構造。
        imagePoints2 - 2台目のカメラで観測されたキャリブレーションパターン点の投影のベクトルのベクトル。REF: calibrateCamera と同じ構造。
        cameraMatrix1 - 1台目のカメラの入出力カメラ内部行列。REF: calibrateCamera と同じ。さらに、ステレオの場合は追加のフラグを使用できる(下記参照)。
        distCoeffs1 - 歪み係数の入出力ベクトル。REF: calibrateCamera と同じ。
        cameraModel1 - Flag reflecting the type of model for camera 1 (pinhole / fisheye):
        • REF: CALIB_MODEL_PINHOLE ピンホールカメラモデル
        • REF: CALIB_MODEL_FISHEYE 魚眼カメラモデル
        cameraMatrix2 - 2台目のカメラの入出力カメラ内部行列。cameraMatrix1 の説明を参照。
        distCoeffs2 - 2台目のカメラのレンズ歪み係数の入出力。distCoeffs1 の説明を参照。
        cameraModel2 - カメラ2のモデルの種類 (pinhole / fisheye) を表すフラグ。cameraModel1 の説明を参照。
        R - 出力回転行列。並進ベクトル T とともに、この行列は1台目のカメラの座標系で与えられた点を2台目のカメラの座標系の点に移す。より技術的に言えば、R と T の組は1台目のカメラの座標系から2台目のカメラの座標系への基底変換を行う。その双対性により、この組は2台目のカメラ座標系に対する1台目のカメラの位置と等価である。
        T - 出力並進ベクトル。上記の説明を参照。
        E - 出力基本行列(essential matrix)。
        F - 出力基礎行列(fundamental matrix)。
        rvecs - ステレオペアの第1カメラの座標系における、各パターンビューについて推定された回転ベクトル ( REF: Rodrigues ) の出力ベクトル (例: std::vector<cv::Mat>)。より詳細には、i番目の各回転ベクトルは、対応するi番目の並進ベクトル(次の出力引数の説明を参照)とともに、キャリブレーションパターンを物体座標空間(物体点が指定される空間)からステレオペアの第1カメラのカメラ座標空間へ移す。より技術的に言えば、i番目の回転ベクトルと並進ベクトルの組は、物体座標空間からステレオペアの第1カメラのカメラ座標空間への基底変換を行う。
        tvecs - 各パターンビューについて推定された並進ベクトルの出力ベクトル。前の出力パラメータ(rvecs)のパラメータ説明を参照。
        perViewErrors - 各パターンビューについて推定されたRMS再投影誤差の出力ベクトル。
        flags - Different flags that may be zero or a combination of the following values:
        • REF: CALIB_USE_EXTRINSIC_GUESS R と T は有効な初期値を含んでおり、さらに最適化される。
        The function estimates the transformation between two cameras similar to stereo pair calibration. The principle follows closely to REF: stereoCalibrate. To understand the problem of estimating the relative pose between a camera pair, please refer to the description there. The difference for this function is that, camera intrinsics are not optimized and two cameras are not required to have overlapping fields of view as long as they are observing the same calibration target and the absolute positions of each object point are known. ![](pics/register_pair.png) The above illustration shows an example where such a case may become relevant. Additionally, it supports a camera pair with the mixed model (pinhole / fisheye). Similarly to #calibrateCamera, the function minimizes the total re-projection error for all the points in all the available views from both cameras.
        戻り値:
        再投影誤差の最終値。SEE: calibrateCamera, stereoCalibrate
      • registerCamerasExtended

        public static double registerCamerasExtended​(java.util.List<Mat> objectPoints1,
                                                     java.util.List<Mat> objectPoints2,
                                                     java.util.List<Mat> imagePoints1,
                                                     java.util.List<Mat> imagePoints2,
                                                     Mat cameraMatrix1,
                                                     Mat distCoeffs1,
                                                     int cameraModel1,
                                                     Mat cameraMatrix2,
                                                     Mat distCoeffs2,
                                                     int cameraModel2,
                                                     Mat R,
                                                     Mat T,
                                                     Mat E,
                                                     Mat F,
                                                     java.util.List<Mat> rvecs,
                                                     java.util.List<Mat> tvecs,
                                                     Mat perViewErrors)
        Calibrates a camera pair set up. This function finds the extrinsic parameters between the two cameras.
        引数:
        objectPoints1 - カメラ1用のキャリブレーションパターン点のベクトルのベクトル。REF: calibrateCamera の objectPoints と同様の構造であり、各パターンビューについて両カメラが同じ物体点を見る必要はない。objectPoints1.size(), imagePoints1.size() は等しくなければならず、同様に各 i について objectPoints1[i].size(), imagePoints1[i].size() も等しくなければならない。
        objectPoints2 - カメラ2用のキャリブレーションパターン点のベクトルのベクトル。objectPoints1 と同様の構造である。objectPoints2.size() と imagePoints2.size() は等しくなければならず、同様に各 i について objectPoints2[i].size(), imagePoints2[i].size() も等しくなければならない。ただし、objectPoints1[i].size() と objectPoints2[i].size() は等しくなくてもよい。
        imagePoints1 - 1台目のカメラで観測されたキャリブレーションパターン点の投影のベクトルのベクトル。REF: calibrateCamera と同じ構造。
        imagePoints2 - 2台目のカメラで観測されたキャリブレーションパターン点の投影のベクトルのベクトル。REF: calibrateCamera と同じ構造。
        cameraMatrix1 - 1台目のカメラの入出力カメラ内部行列。REF: calibrateCamera と同じ。さらに、ステレオの場合は追加のフラグを使用できる(下記参照)。
        distCoeffs1 - 歪み係数の入出力ベクトル。REF: calibrateCamera と同じ。
        cameraModel1 - Flag reflecting the type of model for camera 1 (pinhole / fisheye):
        • REF: CALIB_MODEL_PINHOLE ピンホールカメラモデル
        • REF: CALIB_MODEL_FISHEYE 魚眼カメラモデル
        cameraMatrix2 - 2台目のカメラの入出力カメラ内部行列。cameraMatrix1 の説明を参照。
        distCoeffs2 - 2台目のカメラのレンズ歪み係数の入出力。distCoeffs1 の説明を参照。
        cameraModel2 - カメラ2のモデルの種類 (pinhole / fisheye) を表すフラグ。cameraModel1 の説明を参照。
        R - 出力回転行列。並進ベクトル T とともに、この行列は1台目のカメラの座標系で与えられた点を2台目のカメラの座標系の点に移す。より技術的に言えば、R と T の組は1台目のカメラの座標系から2台目のカメラの座標系への基底変換を行う。その双対性により、この組は2台目のカメラ座標系に対する1台目のカメラの位置と等価である。
        T - 出力並進ベクトル。上記の説明を参照。
        E - 出力基本行列(essential matrix)。
        F - 出力基礎行列(fundamental matrix)。
        rvecs - ステレオペアの第1カメラの座標系における、各パターンビューについて推定された回転ベクトル ( REF: Rodrigues ) の出力ベクトル (例: std::vector<cv::Mat>)。より詳細には、i番目の各回転ベクトルは、対応するi番目の並進ベクトル(次の出力引数の説明を参照)とともに、キャリブレーションパターンを物体座標空間(物体点が指定される空間)からステレオペアの第1カメラのカメラ座標空間へ移す。より技術的に言えば、i番目の回転ベクトルと並進ベクトルの組は、物体座標空間からステレオペアの第1カメラのカメラ座標空間への基底変換を行う。
        tvecs - 各パターンビューについて推定された並進ベクトルの出力ベクトル。前の出力パラメータ(rvecs)のパラメータ説明を参照。
        perViewErrors - Output vector of the RMS re-projection error estimated for each pattern view.
        • REF: CALIB_USE_EXTRINSIC_GUESS R と T は有効な初期値を含んでおり、さらに最適化される。
        The function estimates the transformation between two cameras similar to stereo pair calibration. The principle follows closely to REF: stereoCalibrate. To understand the problem of estimating the relative pose between a camera pair, please refer to the description there. The difference for this function is that, camera intrinsics are not optimized and two cameras are not required to have overlapping fields of view as long as they are observing the same calibration target and the absolute positions of each object point are known. ![](pics/register_pair.png) The above illustration shows an example where such a case may become relevant. Additionally, it supports a camera pair with the mixed model (pinhole / fisheye). Similarly to #calibrateCamera, the function minimizes the total re-projection error for all the points in all the available views from both cameras.
        戻り値:
        再投影誤差の最終値。SEE: calibrateCamera, stereoCalibrate
      • registerCameras

        public static double registerCameras​(java.util.List<Mat> objectPoints1,
                                             java.util.List<Mat> objectPoints2,
                                             java.util.List<Mat> imagePoints1,
                                             java.util.List<Mat> imagePoints2,
                                             Mat cameraMatrix1,
                                             Mat distCoeffs1,
                                             int cameraModel1,
                                             Mat cameraMatrix2,
                                             Mat distCoeffs2,
                                             int cameraModel2,
                                             Mat R,
                                             Mat T,
                                             Mat E,
                                             Mat F,
                                             Mat perViewErrors,
                                             int flags,
                                             TermCriteria criteria)
      • registerCameras

        public static double registerCameras​(java.util.List<Mat> objectPoints1,
                                             java.util.List<Mat> objectPoints2,
                                             java.util.List<Mat> imagePoints1,
                                             java.util.List<Mat> imagePoints2,
                                             Mat cameraMatrix1,
                                             Mat distCoeffs1,
                                             int cameraModel1,
                                             Mat cameraMatrix2,
                                             Mat distCoeffs2,
                                             int cameraModel2,
                                             Mat R,
                                             Mat T,
                                             Mat E,
                                             Mat F,
                                             Mat perViewErrors,
                                             int flags)
      • registerCameras

        public static double registerCameras​(java.util.List<Mat> objectPoints1,
                                             java.util.List<Mat> objectPoints2,
                                             java.util.List<Mat> imagePoints1,
                                             java.util.List<Mat> imagePoints2,
                                             Mat cameraMatrix1,
                                             Mat distCoeffs1,
                                             int cameraModel1,
                                             Mat cameraMatrix2,
                                             Mat distCoeffs2,
                                             int cameraModel2,
                                             Mat R,
                                             Mat T,
                                             Mat E,
                                             Mat F,
                                             Mat perViewErrors)
      • fisheye_calibrate

        public static double fisheye_calibrate​(java.util.List<Mat> objectPoints,
                                               java.util.List<Mat> imagePoints,
                                               Size image_size,
                                               Mat K,
                                               Mat D,
                                               java.util.List<Mat> rvecs,
                                               java.util.List<Mat> tvecs,
                                               int flags,
                                               TermCriteria criteria)
        Performs camera calibration
        引数:
        objectPoints - キャリブレーションパターン座標空間におけるキャリブレーションパターン点のベクトルのベクトル。
        imagePoints - キャリブレーションパターン点の投影のベクトルのベクトル。imagePoints.size() と objectPoints.size() は等しく、各 i について imagePoints[i].size() は objectPoints[i].size() と等しくなければならない。
        image_size - カメラ内部行列の初期化にのみ用いられる画像のサイズ。
        K - 出力3x3浮動小数点カメラ内部行列 \(\cameramatrix{A}\) 。REF: cv::CALIB_USE_INTRINSIC_GUESS が指定されている場合、fx, fy, cx, cy の一部またはすべてを関数呼び出し前に初期化しておく必要がある。
        D - 歪み係数の出力ベクトル \(\distcoeffsfisheye\)。
        rvecs - 各パターンビューについて推定された回転ベクトル (Rodrigues を参照) の出力ベクトル。すなわち、k番目の各回転ベクトルは、対応するk番目の並進ベクトル(次の出力引数の説明を参照)とともに、キャリブレーションパターンをモデル座標空間(物体点が指定される空間)からワールド座標空間、すなわちk番目のパターンビューにおけるキャリブレーションパターンの実際の位置 (k=0.. *M* -1) へ移す。
        tvecs - 各パターンビューについて推定された並進ベクトルの出力ベクトル。
        flags - Different flags that may be zero or a combination of the following values:
        • REF: cv::CALIB_USE_INTRINSIC_GUESS cameraMatrix は fx, fy, cx, cy の有効な初期値を含んでおり、さらに最適化される。そうでない場合、(cx, cy) は初期値として画像中心に設定され ( imageSize が使用される)、焦点距離は最小二乗法で計算される。
        • REF: cv::CALIB_RECOMPUTE_EXTRINSIC 内部パラメータ最適化の各反復後に外部パラメータが再計算される。
        • REF: cv::CALIB_CHECK_COND この関数は条件数の妥当性をチェックする。
        • REF: cv::CALIB_FIX_SKEW スキュー係数 (alpha) が0に設定され、0のまま保たれる。
        • REF: cv::CALIB_FIX_K1,..., REF: cv::CALIB_FIX_K4 選択された歪み係数が0に設定され、0のまま保たれる。
        • REF: cv::CALIB_FIX_PRINCIPAL_POINT グローバル最適化の間、主点は変更されない。中心、または REF: cv::CALIB_USE_INTRINSIC_GUESS も設定されている場合に指定された別の位置にとどまる。
        • REF: cv::CALIB_FIX_FOCAL_LENGTH グローバル最適化の間、焦点距離は変更されない。これは \(max(width,height)/\pi\) 、または REF: cv::CALIB_USE_INTRINSIC_GUESS も設定されている場合に与えられた \(f_x\), \(f_y\) である。
        criteria - 反復最適化アルゴリズムの終了条件。
        戻り値:
        自動生成
      • fisheye_calibrate

        public static double fisheye_calibrate​(java.util.List<Mat> objectPoints,
                                               java.util.List<Mat> imagePoints,
                                               Size image_size,
                                               Mat K,
                                               Mat D,
                                               java.util.List<Mat> rvecs,
                                               java.util.List<Mat> tvecs,
                                               int flags)
        Performs camera calibration
        引数:
        objectPoints - キャリブレーションパターン座標空間におけるキャリブレーションパターン点のベクトルのベクトル。
        imagePoints - キャリブレーションパターン点の投影のベクトルのベクトル。imagePoints.size() と objectPoints.size() は等しく、各 i について imagePoints[i].size() は objectPoints[i].size() と等しくなければならない。
        image_size - カメラ内部行列の初期化にのみ用いられる画像のサイズ。
        K - 出力3x3浮動小数点カメラ内部行列 \(\cameramatrix{A}\) 。REF: cv::CALIB_USE_INTRINSIC_GUESS が指定されている場合、fx, fy, cx, cy の一部またはすべてを関数呼び出し前に初期化しておく必要がある。
        D - 歪み係数の出力ベクトル \(\distcoeffsfisheye\)。
        rvecs - 各パターンビューについて推定された回転ベクトル (Rodrigues を参照) の出力ベクトル。すなわち、k番目の各回転ベクトルは、対応するk番目の並進ベクトル(次の出力引数の説明を参照)とともに、キャリブレーションパターンをモデル座標空間(物体点が指定される空間)からワールド座標空間、すなわちk番目のパターンビューにおけるキャリブレーションパターンの実際の位置 (k=0.. *M* -1) へ移す。
        tvecs - 各パターンビューについて推定された並進ベクトルの出力ベクトル。
        flags - Different flags that may be zero or a combination of the following values:
        • REF: cv::CALIB_USE_INTRINSIC_GUESS cameraMatrix は fx, fy, cx, cy の有効な初期値を含んでおり、さらに最適化される。そうでない場合、(cx, cy) は初期値として画像中心に設定され ( imageSize が使用される)、焦点距離は最小二乗法で計算される。
        • REF: cv::CALIB_RECOMPUTE_EXTRINSIC 内部パラメータ最適化の各反復後に外部パラメータが再計算される。
        • REF: cv::CALIB_CHECK_COND この関数は条件数の妥当性をチェックする。
        • REF: cv::CALIB_FIX_SKEW スキュー係数 (alpha) が0に設定され、0のまま保たれる。
        • REF: cv::CALIB_FIX_K1,..., REF: cv::CALIB_FIX_K4 選択された歪み係数が0に設定され、0のまま保たれる。
        • REF: cv::CALIB_FIX_PRINCIPAL_POINT グローバル最適化の間、主点は変更されない。中心、または REF: cv::CALIB_USE_INTRINSIC_GUESS も設定されている場合に指定された別の位置にとどまる。
        • REF: cv::CALIB_FIX_FOCAL_LENGTH グローバル最適化の間、焦点距離は変更されない。これは \(max(width,height)/\pi\) 、または REF: cv::CALIB_USE_INTRINSIC_GUESS も設定されている場合に与えられた \(f_x\), \(f_y\) である。
        戻り値:
        自動生成
      • fisheye_calibrate

        public static double fisheye_calibrate​(java.util.List<Mat> objectPoints,
                                               java.util.List<Mat> imagePoints,
                                               Size image_size,
                                               Mat K,
                                               Mat D,
                                               java.util.List<Mat> rvecs,
                                               java.util.List<Mat> tvecs)
        Performs camera calibration
        引数:
        objectPoints - キャリブレーションパターン座標空間におけるキャリブレーションパターン点のベクトルのベクトル。
        imagePoints - キャリブレーションパターン点の投影のベクトルのベクトル。imagePoints.size() と objectPoints.size() は等しく、各 i について imagePoints[i].size() は objectPoints[i].size() と等しくなければならない。
        image_size - カメラ内部行列の初期化にのみ用いられる画像のサイズ。
        K - 出力3x3浮動小数点カメラ内部行列 \(\cameramatrix{A}\) 。REF: cv::CALIB_USE_INTRINSIC_GUESS が指定されている場合、fx, fy, cx, cy の一部またはすべてを関数呼び出し前に初期化しておく必要がある。
        D - 歪み係数の出力ベクトル \(\distcoeffsfisheye\)。
        rvecs - 各パターンビューについて推定された回転ベクトル (Rodrigues を参照) の出力ベクトル。すなわち、k番目の各回転ベクトルは、対応するk番目の並進ベクトル(次の出力引数の説明を参照)とともに、キャリブレーションパターンをモデル座標空間(物体点が指定される空間)からワールド座標空間、すなわちk番目のパターンビューにおけるキャリブレーションパターンの実際の位置 (k=0.. *M* -1) へ移す。
        tvecs - Output vector of translation vectors estimated for each pattern view.
        • REF: cv::CALIB_USE_INTRINSIC_GUESS cameraMatrix は fx, fy, cx, cy の有効な初期値を含んでおり、さらに最適化される。そうでない場合、(cx, cy) は初期値として画像中心に設定され ( imageSize が使用される)、焦点距離は最小二乗法で計算される。
        • REF: cv::CALIB_RECOMPUTE_EXTRINSIC 内部パラメータ最適化の各反復後に外部パラメータが再計算される。
        • REF: cv::CALIB_CHECK_COND この関数は条件数の妥当性をチェックする。
        • REF: cv::CALIB_FIX_SKEW スキュー係数 (alpha) が0に設定され、0のまま保たれる。
        • REF: cv::CALIB_FIX_K1,..., REF: cv::CALIB_FIX_K4 選択された歪み係数が0に設定され、0のまま保たれる。
        • REF: cv::CALIB_FIX_PRINCIPAL_POINT グローバル最適化の間、主点は変更されない。中心、または REF: cv::CALIB_USE_INTRINSIC_GUESS も設定されている場合に指定された別の位置にとどまる。
        • REF: cv::CALIB_FIX_FOCAL_LENGTH グローバル最適化の間、焦点距離は変更されない。これは \(max(width,height)/\pi\) 、または REF: cv::CALIB_USE_INTRINSIC_GUESS も設定されている場合に与えられた \(f_x\), \(f_y\) である。
        戻り値:
        自動生成
      • fisheye_stereoCalibrate

        public static double fisheye_stereoCalibrate​(java.util.List<Mat> objectPoints,
                                                     java.util.List<Mat> imagePoints1,
                                                     java.util.List<Mat> imagePoints2,
                                                     Mat K1,
                                                     Mat D1,
                                                     Mat K2,
                                                     Mat D2,
                                                     Size imageSize,
                                                     Mat R,
                                                     Mat T,
                                                     java.util.List<Mat> rvecs,
                                                     java.util.List<Mat> tvecs,
                                                     int flags,
                                                     TermCriteria criteria)
        Performs stereo calibration
        引数:
        objectPoints - キャリブレーションパターン点のベクトルのベクトル。
        imagePoints1 - 1台目のカメラで観測された、キャリブレーションパターン点の投影のベクトルのベクトル。
        imagePoints2 - 2台目のカメラで観測された、キャリブレーションパターン点の投影のベクトルのベクトル。
        K1 - 入出力の第1カメラ内部行列: \(\vecthreethree{f_x^{(j)}}{0}{c_x^{(j)}}{0}{f_y^{(j)}}{c_y^{(j)}}{0}{0}{1}\) , \(j = 0,\, 1\) 。REF: cv::CALIB_USE_INTRINSIC_GUESS , REF: cv::CALIB_FIX_INTRINSIC のいずれかが指定されている場合、行列要素の一部またはすべてを初期化しておく必要がある。
        D1 - 4要素の歪み係数 \(\distcoeffsfisheye\) の入力/出力ベクトル。
        K2 - 入力/出力の2台目のカメラの内部行列。パラメータは K1 と同様。
        D2 - 2台目のカメラの入力/出力レンズ歪み係数。パラメータは D1 と同様。
        imageSize - カメラ内部行列の初期化のみに使用される画像のサイズ。
        R - 1台目と2台目のカメラ座標系間の出力回転行列。
        T - カメラの座標系間の出力並進ベクトル。
        rvecs - ステレオペアの1台目のカメラの座標系において、各パターンビューについて推定された回転ベクトル(REF: Rodrigues)の出力ベクトル(例: std::vector<cv::Mat>)。より詳しくは、各 i 番目の回転ベクトルは、対応する i 番目の並進ベクトル(次の出力パラメータの説明を参照)とともに、キャリブレーションパターンを物体座標空間(物体点が指定される空間)からステレオペアの1台目のカメラのカメラ座標空間へ移す。より技術的に言えば、i 番目の回転ベクトルと並進ベクトルの組は、物体座標空間からステレオペアの1台目のカメラのカメラ座標空間への基底変換を行う。
        tvecs - 各パターンビューについて推定された並進ベクトルの出力ベクトル。前の出力パラメータ(rvecs)のパラメータ説明を参照。
        flags - Different flags that may be zero or a combination of the following values:
        • REF: cv::CALIB_FIX_INTRINSIC K1, K2? および D1, D2? を固定し、R, T 行列のみを推定する。
        • REF: cv::CALIB_USE_INTRINSIC_GUESS K1, K2 は fx, fy, cx, cy の有効な初期値を含んでおり、さらに最適化される。そうでない場合、(cx, cy) は初期値として画像中心に設定され (imageSize が使用される)、焦点距離は最小二乗法で計算される。
        • REF: cv::CALIB_RECOMPUTE_EXTRINSIC 内部パラメータ最適化の各反復後に外部パラメータが再計算される。
        • REF: cv::CALIB_CHECK_COND この関数は条件数の妥当性をチェックする。
        • REF: cv::CALIB_FIX_SKEW スキュー係数 (alpha) が0に設定され、0のまま保たれる。
        • REF: cv::CALIB_FIX_K1,..., REF: cv::CALIB_FIX_K4 選択された歪み係数が0に設定され、0のまま保たれる。
        criteria - 反復最適化アルゴリズムの終了条件。
        戻り値:
        自動生成
      • fisheye_stereoCalibrate

        public static double fisheye_stereoCalibrate​(java.util.List<Mat> objectPoints,
                                                     java.util.List<Mat> imagePoints1,
                                                     java.util.List<Mat> imagePoints2,
                                                     Mat K1,
                                                     Mat D1,
                                                     Mat K2,
                                                     Mat D2,
                                                     Size imageSize,
                                                     Mat R,
                                                     Mat T,
                                                     java.util.List<Mat> rvecs,
                                                     java.util.List<Mat> tvecs,
                                                     int flags)
        Performs stereo calibration
        引数:
        objectPoints - キャリブレーションパターン点のベクトルのベクトル。
        imagePoints1 - 1台目のカメラで観測された、キャリブレーションパターン点の投影のベクトルのベクトル。
        imagePoints2 - 2台目のカメラで観測された、キャリブレーションパターン点の投影のベクトルのベクトル。
        K1 - 入出力の第1カメラ内部行列: \(\vecthreethree{f_x^{(j)}}{0}{c_x^{(j)}}{0}{f_y^{(j)}}{c_y^{(j)}}{0}{0}{1}\) , \(j = 0,\, 1\) 。REF: cv::CALIB_USE_INTRINSIC_GUESS , REF: cv::CALIB_FIX_INTRINSIC のいずれかが指定されている場合、行列要素の一部またはすべてを初期化しておく必要がある。
        D1 - 4要素の歪み係数 \(\distcoeffsfisheye\) の入力/出力ベクトル。
        K2 - 入力/出力の2台目のカメラの内部行列。パラメータは K1 と同様。
        D2 - 2台目のカメラの入力/出力レンズ歪み係数。パラメータは D1 と同様。
        imageSize - カメラ内部行列の初期化のみに使用される画像のサイズ。
        R - 1台目と2台目のカメラ座標系間の出力回転行列。
        T - カメラの座標系間の出力並進ベクトル。
        rvecs - ステレオペアの1台目のカメラの座標系において、各パターンビューについて推定された回転ベクトル(REF: Rodrigues)の出力ベクトル(例: std::vector<cv::Mat>)。より詳しくは、各 i 番目の回転ベクトルは、対応する i 番目の並進ベクトル(次の出力パラメータの説明を参照)とともに、キャリブレーションパターンを物体座標空間(物体点が指定される空間)からステレオペアの1台目のカメラのカメラ座標空間へ移す。より技術的に言えば、i 番目の回転ベクトルと並進ベクトルの組は、物体座標空間からステレオペアの1台目のカメラのカメラ座標空間への基底変換を行う。
        tvecs - 各パターンビューについて推定された並進ベクトルの出力ベクトル。前の出力パラメータ(rvecs)のパラメータ説明を参照。
        flags - Different flags that may be zero or a combination of the following values:
        • REF: cv::CALIB_FIX_INTRINSIC K1, K2? および D1, D2? を固定し、R, T 行列のみを推定する。
        • REF: cv::CALIB_USE_INTRINSIC_GUESS K1, K2 は fx, fy, cx, cy の有効な初期値を含んでおり、さらに最適化される。そうでない場合、(cx, cy) は初期値として画像中心に設定され (imageSize が使用される)、焦点距離は最小二乗法で計算される。
        • REF: cv::CALIB_RECOMPUTE_EXTRINSIC 内部パラメータ最適化の各反復後に外部パラメータが再計算される。
        • REF: cv::CALIB_CHECK_COND この関数は条件数の妥当性をチェックする。
        • REF: cv::CALIB_FIX_SKEW スキュー係数 (alpha) が0に設定され、0のまま保たれる。
        • REF: cv::CALIB_FIX_K1,..., REF: cv::CALIB_FIX_K4 選択された歪み係数が0に設定され、0のまま保たれる。
        戻り値:
        自動生成
      • fisheye_stereoCalibrate

        public static double fisheye_stereoCalibrate​(java.util.List<Mat> objectPoints,
                                                     java.util.List<Mat> imagePoints1,
                                                     java.util.List<Mat> imagePoints2,
                                                     Mat K1,
                                                     Mat D1,
                                                     Mat K2,
                                                     Mat D2,
                                                     Size imageSize,
                                                     Mat R,
                                                     Mat T,
                                                     java.util.List<Mat> rvecs,
                                                     java.util.List<Mat> tvecs)
        Performs stereo calibration
        引数:
        objectPoints - キャリブレーションパターン点のベクトルのベクトル。
        imagePoints1 - 1台目のカメラで観測された、キャリブレーションパターン点の投影のベクトルのベクトル。
        imagePoints2 - 2台目のカメラで観測された、キャリブレーションパターン点の投影のベクトルのベクトル。
        K1 - 入出力の第1カメラ内部行列: \(\vecthreethree{f_x^{(j)}}{0}{c_x^{(j)}}{0}{f_y^{(j)}}{c_y^{(j)}}{0}{0}{1}\) , \(j = 0,\, 1\) 。REF: cv::CALIB_USE_INTRINSIC_GUESS , REF: cv::CALIB_FIX_INTRINSIC のいずれかが指定されている場合、行列要素の一部またはすべてを初期化しておく必要がある。
        D1 - 4要素の歪み係数 \(\distcoeffsfisheye\) の入力/出力ベクトル。
        K2 - 入力/出力の2台目のカメラの内部行列。パラメータは K1 と同様。
        D2 - 2台目のカメラの入力/出力レンズ歪み係数。パラメータは D1 と同様。
        imageSize - カメラ内部行列の初期化のみに使用される画像のサイズ。
        R - 1台目と2台目のカメラ座標系間の出力回転行列。
        T - カメラの座標系間の出力並進ベクトル。
        rvecs - ステレオペアの1台目のカメラの座標系において、各パターンビューについて推定された回転ベクトル(REF: Rodrigues)の出力ベクトル(例: std::vector<cv::Mat>)。より詳しくは、各 i 番目の回転ベクトルは、対応する i 番目の並進ベクトル(次の出力パラメータの説明を参照)とともに、キャリブレーションパターンを物体座標空間(物体点が指定される空間)からステレオペアの1台目のカメラのカメラ座標空間へ移す。より技術的に言えば、i 番目の回転ベクトルと並進ベクトルの組は、物体座標空間からステレオペアの1台目のカメラのカメラ座標空間への基底変換を行う。
        tvecs - Output vector of translation vectors estimated for each pattern view, see parameter description of previous output parameter ( rvecs ).
        • REF: cv::CALIB_FIX_INTRINSIC K1, K2? および D1, D2? を固定し、R, T 行列のみを推定する。
        • REF: cv::CALIB_USE_INTRINSIC_GUESS K1, K2 は fx, fy, cx, cy の有効な初期値を含んでおり、さらに最適化される。そうでない場合、(cx, cy) は初期値として画像中心に設定され (imageSize が使用される)、焦点距離は最小二乗法で計算される。
        • REF: cv::CALIB_RECOMPUTE_EXTRINSIC 内部パラメータ最適化の各反復後に外部パラメータが再計算される。
        • REF: cv::CALIB_CHECK_COND この関数は条件数の妥当性をチェックする。
        • REF: cv::CALIB_FIX_SKEW スキュー係数 (alpha) が0に設定され、0のまま保たれる。
        • REF: cv::CALIB_FIX_K1,..., REF: cv::CALIB_FIX_K4 選択された歪み係数が0に設定され、0のまま保たれる。
        戻り値:
        自動生成
      • fisheye_stereoCalibrate

        public static double fisheye_stereoCalibrate​(java.util.List<Mat> objectPoints,
                                                     java.util.List<Mat> imagePoints1,
                                                     java.util.List<Mat> imagePoints2,
                                                     Mat K1,
                                                     Mat D1,
                                                     Mat K2,
                                                     Mat D2,
                                                     Size imageSize,
                                                     Mat R,
                                                     Mat T,
                                                     int flags,
                                                     TermCriteria criteria)
      • fisheye_stereoCalibrate

        public static double fisheye_stereoCalibrate​(java.util.List<Mat> objectPoints,
                                                     java.util.List<Mat> imagePoints1,
                                                     java.util.List<Mat> imagePoints2,
                                                     Mat K1,
                                                     Mat D1,
                                                     Mat K2,
                                                     Mat D2,
                                                     Size imageSize,
                                                     Mat R,
                                                     Mat T,
                                                     int flags)
      • fisheye_stereoCalibrate

        public static double fisheye_stereoCalibrate​(java.util.List<Mat> objectPoints,
                                                     java.util.List<Mat> imagePoints1,
                                                     java.util.List<Mat> imagePoints2,
                                                     Mat K1,
                                                     Mat D1,
                                                     Mat K2,
                                                     Mat D2,
                                                     Size imageSize,
                                                     Mat R,
                                                     Mat T)