![]() |
OpenCV 5.0.0
Open Source Computer Vision
|
| void cv::sfm::computeOrientation | ( | InputArrayOfArrays | x1, |
| InputArrayOfArrays | x2, | ||
| OutputArray | R, | ||
| OutputArray | t, | ||
| double | s ) |
#include <opencv2/sfm/fundamental.hpp>
2組の3D点間の絶対方位または外部方位(姿勢推定)を計算する。
| x1 | 入力となる1つ目の 3xN または 2xN の点の配列。 |
| x2 | 入力となる2つ目の 3xN または 2xN の点の配列。 |
| R | 計算された 3x3 の回転行列を出力する。 |
| t | 計算された 3x1 の並進ベクトルを出力する。 |
| s | 計算されたスケール係数を出力する。 |
xp=projection*(s*R*x+t) を満たす最適な変換を求める(姿勢推定、ePNPと同じ)。以下のルーチンは現時点では正射影の場合のみに対応する。
| void cv::sfm::essentialFromFundamental | ( | InputArray | F, |
| InputArray | K1, | ||
| InputArray | K2, | ||
| OutputArray | E ) |
#include <opencv2/sfm/fundamental.hpp>
基礎行列とカメラ行列から基本行列を取得する。
| F | 入力となる 3x3 の基礎行列。 |
| K1 | 入力となる 3x3 の1つ目のカメラ行列 \(K = \vecthreethree{f_x}{0}{c_x}{0}{f_y}{c_y}{0}{0}{1}\)。 |
| K2 | 入力となる 3x3 の2つ目のカメラ行列。パラメータは K1 と同様である。 |
| E | 計算された 3x3 の基本行列を出力する。 |
参考文献: [121] 9.6 pag 257 (formula 9.12)
| void cv::sfm::essentialFromRt | ( | InputArray | R1, |
| InputArray | t1, | ||
| InputArray | R2, | ||
| InputArray | t2, | ||
| OutputArray | E ) |
#include <opencv2/sfm/fundamental.hpp>
運動(R群とt群)から基本行列を取得する。
| R1 | 入力となる 3x3 の1つ目のカメラ回転行列。 |
| t1 | 入力となる 3x1 の1つ目のカメラ並進ベクトル。 |
| R2 | 入力となる 3x3 の2つ目のカメラ回転行列。 |
| t2 | 入力となる 3x1 の2つ目のカメラ並進ベクトル。 |
| E | 計算された 3x3 の基本行列を出力する。 |
参考文献: [121] 9.6 pag 257 (formula 9.12)
| void cv::sfm::fundamentalFromEssential | ( | InputArray | E, |
| InputArray | K1, | ||
| InputArray | K2, | ||
| OutputArray | F ) |
#include <opencv2/sfm/fundamental.hpp>
基礎行列とカメラ行列から基本行列を取得する。
| E | 入力の3x3基本行列(essential matrix)。 |
| K1 | 入力となる 3x3 の1つ目のカメラ行列 \(K = \vecthreethree{f_x}{0}{c_x}{0}{f_y}{c_y}{0}{0}{1}\)。 |
| K2 | 入力となる 3x3 の2つ目のカメラ行列。パラメータは K1 と同様である。 |
| F | 出力の3x3基礎行列(fundamental matrix)。 |
参考文献: [121] 9.6 pag 257 (formula 9.12) または http://ai.stanford.edu/~birch/projective/node20.html
| void cv::sfm::fundamentalFromProjections | ( | InputArray | P1, |
| InputArray | P2, | ||
| OutputArray | F ) |
#include <opencv2/sfm/fundamental.hpp>
射影行列から基礎行列を取得する。
| P1 | 入力の3x4の1つ目の射影行列。 |
| P2 | 入力の3x4の2つ目の射影行列。 |
| F | 出力の3x3基礎行列(fundamental matrix)。 |
| void cv::sfm::motionFromEssential | ( | InputArray | E, |
| OutputArrayOfArrays | Rs, | ||
| OutputArrayOfArrays | ts ) |
#include <opencv2/sfm/fundamental.hpp>
基本行列から運動(R群とt群)を取得する。
| E | 入力の3x3基本行列(essential matrix)。 |
| Rs | 出力の3x3回転行列のベクトル。 |
| ts | 出力の3x1並進ベクトルのベクトル。 |
参考文献: [121] 9.6 pag 259 (Result 9.19)
| int cv::sfm::motionFromEssentialChooseSolution | ( | InputArrayOfArrays | Rs, |
| InputArrayOfArrays | ts, | ||
| InputArray | K1, | ||
| InputArray | x1, | ||
| InputArray | K2, | ||
| InputArray | x2 ) |
#include <opencv2/sfm/fundamental.hpp>
基本行列から得られる4つのとりうる運動解のうち1つを選択する。
| Rs | 入力の3x3回転行列のベクトル。 |
| ts | 入力の3x1並進ベクトルのベクトル。 |
| K1 | 入力となる 3x3 の1つ目のカメラ行列 \(K = \vecthreethree{f_x}{0}{c_x}{0}{f_y}{c_y}{0}{0}{1}\)。 |
| x1 | 1つ目の2D点を含む入力の2x1ベクトル。 |
| K2 | 入力となる 3x3 の2つ目のカメラ行列。パラメータは K1 と同様である。 |
| x2 | 2つ目の2D点を含む入力の2x1ベクトル。 |
対応点 x1–x2 の三角測量結果がカメラの前方にあることを確認して正しい解を決定する。正しい解のインデックスを返す。解がない場合は -1 を返す。
参考文献: [121] 9.6 pag 259 (9.6.3 Geometrical interpretation of the 4 solutions) を参照。
| void cv::sfm::normalizedEightPointSolver | ( | InputArray | x1, |
| InputArray | x2, | ||
| OutputArray | F ) |
#include <opencv2/sfm/fundamental.hpp>
2つの2D点データセット(画像座標空間)間の基礎行列を推定する。
| x1 | ビュー1における2D点の入力2xN配列。 |
| x2 | ビュー2における2D点の入力2xN配列。 |
| F | 出力の3x3基礎行列(fundamental matrix)。 |
正規化8点法による基礎行列ソルバを使用する。参考文献: [121] 11.2 pag.281 (x1 = x, x2 = x')
| void cv::sfm::normalizeFundamental | ( | InputArray | F, |
| OutputArray | F_normalized ) |
#include <opencv2/sfm/fundamental.hpp>
基礎行列を正規化する。
| F | 入力となる 3x3 の基礎行列。 |
| F_normalized | 出力の3x3正規化された基礎行列。 |
デフォルトでは基礎行列を L2 ノルムで除算する。
| void cv::sfm::projectionsFromFundamental | ( | InputArray | F, |
| OutputArray | P1, | ||
| OutputArray | P2 ) |
#include <opencv2/sfm/fundamental.hpp>
基礎行列から射影行列を取得する。
| F | 入力となる 3x3 の基礎行列。 |
| P1 | 出力の3x4のとりうる1つの射影行列。 |
| P2 | 出力の3x4のとりうる別の射影行列。 |
| void cv::sfm::relativeCameraMotion | ( | InputArray | R1, |
| InputArray | t1, | ||
| InputArray | R2, | ||
| InputArray | t2, | ||
| OutputArray | R, | ||
| OutputArray | t ) |
#include <opencv2/sfm/fundamental.hpp>
2台のカメラ間の相対的なカメラ運動を計算する。
| R1 | 入力となる 3x3 の1つ目のカメラ回転行列。 |
| t1 | 入力となる 3x1 の1つ目のカメラ並進ベクトル。 |
| R2 | 入力となる 3x3 の2つ目のカメラ回転行列。 |
| t2 | 入力となる 3x1 の2つ目のカメラ並進ベクトル。 |
| R | 出力の3x3相対回転行列。 |
| t | 出力の3x1相対並進ベクトル。 |
2台のカメラの運動パラメータが与えられたとき、1台目を原点にあると仮定して2台目の運動パラメータを計算する。T1とT2がカメラの運動であるとき、計算される相対運動は \(T = T_2 T_1^{-1}\) である。