![]() |
OpenCV 4.12.0
開源計算機視覺
|
| void cv::sfm::computeOrientation | ( | InputArrayOfArrays | x1, |
| InputArrayOfArrays | x2, | ||
| OutputArray | R, | ||
| OutputArray | t, | ||
| double | s ) |
#include <opencv2/sfm/fundamental.hpp>
計算兩組 3D 點之間的絕對或外部方位(姿態估計)。
| x1 | 第一個 3xN 或 2xN 點陣列輸入。 |
| x2 | 第二個 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 第一個相機矩陣 \(K = \vecthreethree{f_x}{0}{c_x}{0}{f_y}{c_y}{0}{0}{1}\)。 |
| K2 | 輸入 3x3 第二個相機矩陣。引數類似於 K1。 |
| E | 輸出 3x3 本質矩陣。 |
參考:[119] 9.6 頁 257 (公式 9.12)
| void cv::sfm::essentialFromRt | ( | InputArray | 一個可能的旋轉矩陣。, |
| InputArray | t1, | ||
| InputArray | 另一個可能的旋轉矩陣。, | ||
| InputArray | t2, | ||
| OutputArray | E ) |
#include <opencv2/sfm/fundamental.hpp>
從運動(R 和 t)獲取本質矩陣。
| 一個可能的旋轉矩陣。 | 輸入 3x3 第一個相機旋轉矩陣。 |
| t1 | 輸入 3x1 第一個相機平移向量。 |
| 另一個可能的旋轉矩陣。 | 輸入 3x3 第二個相機旋轉矩陣。 |
| t2 | 輸入 3x1 第二個相機平移向量。 |
| E | 輸出 3x3 本質矩陣。 |
參考:[119] 9.6 頁 257 (公式 9.12)
| void cv::sfm::fundamentalFromEssential | ( | InputArray | E, |
| InputArray | K1, | ||
| InputArray | K2, | ||
| OutputArray | F ) |
#include <opencv2/sfm/fundamental.hpp>
從基本矩陣和相機矩陣獲取本質矩陣。
| E | 輸入 3x3 本質矩陣。 |
| K1 | 輸入 3x3 第一個相機矩陣 \(K = \vecthreethree{f_x}{0}{c_x}{0}{f_y}{c_y}{0}{0}{1}\)。 |
| K2 | 輸入 3x3 第二個相機矩陣。引數類似於 K1。 |
| F | 輸出 3x3 基本矩陣。 |
參考:[119] 9.6 頁 257 (公式 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 第一個投影矩陣。 |
| P2 | 輸入 3x4 第二個投影矩陣。 |
| F | 輸出 3x3 基本矩陣。 |
| void cv::sfm::motionFromEssential | ( | InputArray | E, |
| OutputArrayOfArrays | Rs, | ||
| OutputArrayOfArrays | ts ) |
#include <opencv2/sfm/fundamental.hpp>
從本質矩陣獲取運動(R 和 t)。
| E | 輸入 3x3 本質矩陣。 |
| Rs | 輸出 3x3 旋轉矩陣的向量。 |
| ts | 輸出 3x1 平移向量的向量。 |
參考:[119] 9.6 頁 259 (結果 9.19)
| int cv::sfm::motionFromEssentialChooseSolution | ( | InputArrayOfArrays | Rs, |
| InputArrayOfArrays | ts, | ||
| InputArray | K1, | ||
| InputArray | x1, | ||
| InputArray | K2, | ||
| InputArray | x2 ) |
#include <opencv2/sfm/fundamental.hpp>
從本質矩陣的四個可能的運動解決方案中選擇一個。
| Rs | 輸入 3x3 旋轉矩陣的向量。 |
| ts | 輸入 3x1 平移向量的向量。 |
| K1 | 輸入 3x3 第一個相機矩陣 \(K = \vecthreethree{f_x}{0}{c_x}{0}{f_y}{c_y}{0}{0}{1}\)。 |
| x1 | 輸入 2x1 向量,包含第一個 2d 點。 |
| K2 | 輸入 3x3 第二個相機矩陣。引數類似於 K1。 |
| x2 | 輸入 2x1 向量,包含第二個 2d 點。 |
透過檢查匹配 x1–x2 的三角剖分是否位於相機前方來決定正確的解決方案。 返回正確解決方案的索引,如果無解,則返回 -1。
參考:參見 [119] 9.6 頁 259 (9.6.3 4 個解決方案的幾何解釋)。
| void cv::sfm::normalizedEightPointSolver | ( | InputArray | x1, |
| InputArray | x2, | ||
| OutputArray | F ) |
#include <opencv2/sfm/fundamental.hpp>
估計兩個 2D 點資料集(影像座標空間)之間的基本矩陣。
| x1 | 檢視 1 中 2D 點的 2xN 輸入陣列。 |
| x2 | 檢視 2 中 2D 點的 2xN 輸入陣列。 |
| F | 輸出 3x3 基本矩陣。 |
使用歸一化的 8 點基本矩陣求解器。 參考:[119] 11.2 頁 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 一個可能的投影矩陣。 |
| P2 | 輸出 3x4 另一個可能的投影矩陣。 |
| void cv::sfm::relativeCameraMotion | ( | InputArray | 一個可能的旋轉矩陣。, |
| InputArray | t1, | ||
| InputArray | 另一個可能的旋轉矩陣。, | ||
| InputArray | t2, | ||
| OutputArray | R, | ||
| OutputArray | t ) |
#include <opencv2/sfm/fundamental.hpp>
計算兩個相機之間的相對相機運動。
| 一個可能的旋轉矩陣。 | 輸入 3x3 第一個相機旋轉矩陣。 |
| t1 | 輸入 3x1 第一個相機平移向量。 |
| 另一個可能的旋轉矩陣。 | 輸入 3x3 第二個相機旋轉矩陣。 |
| t2 | 輸入 3x1 第二個相機平移向量。 |
| R | 輸出 3x3 相對旋轉矩陣。 |
| t | 輸出 3x1 相對平移向量。 |
給定兩個相機的運動引數,計算第二個相機的運動引數,假設第一個相機位於原點。 如果 T1 和 T2 是相機運動,則計算的相對運動是 \(T = T_2 T_1^{-1}\)