OpenCV 4.12.0
開源計算機視覺
載入中...
搜尋中...
無匹配項

詳細描述

函式

void cv::sfm::computeOrientation (InputArrayOfArrays x1, InputArrayOfArrays x2, OutputArray R, OutputArray t, double s)
 計算兩組 3D 點之間的絕對或外部方位(姿態估計)。
 
void cv::sfm::essentialFromFundamental (InputArray F, InputArray K1, InputArray K2, OutputArray E)
 從基本矩陣和相機矩陣獲取本質矩陣。
 
void cv::sfm::essentialFromRt (InputArray R1, InputArray t1, InputArray R2, InputArray t2, OutputArray E)
 從運動(R 和 t)獲取本質矩陣。
 
void cv::sfm::fundamentalFromEssential (InputArray E, InputArray K1, InputArray K2, OutputArray F)
 從基本矩陣和相機矩陣獲取本質矩陣。
 
void cv::sfm::fundamentalFromProjections (InputArray P1, InputArray P2, OutputArray F)
 從投影矩陣獲取基本矩陣。
 
void cv::sfm::motionFromEssential (InputArray E, OutputArrayOfArrays Rs, OutputArrayOfArrays ts)
 
int cv::sfm::motionFromEssentialChooseSolution (InputArrayOfArrays Rs, InputArrayOfArrays ts, InputArray K1, InputArray x1, InputArray K2, InputArray x2)
 
void cv::sfm::normalizedEightPointSolver (InputArray x1, InputArray x2, OutputArray F)
 估計兩個 2D 點資料集(影像座標空間)之間的基本矩陣。
 
void cv::sfm::normalizeFundamental (InputArray F, OutputArray F_normalized)
 標準化基本矩陣。
 
void cv::sfm::projectionsFromFundamental (InputArray F, OutputArray P1, OutputArray P2)
 從基本矩陣獲取投影矩陣。
 
void cv::sfm::relativeCameraMotion (InputArray R1, InputArray t1, InputArray R2, InputArray t2, OutputArray R, OutputArray t)
 計算兩個相機之間的相對相機運動。
 

函式文件

◆ computeOrientation()

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 相同)。 以下例程目前僅適用於正交情況。

◆ essentialFromFundamental()

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)

◆ essentialFromRt()

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)

◆ fundamentalFromEssential()

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

◆ fundamentalFromProjections()

void cv::sfm::fundamentalFromProjections ( InputArray P1,
InputArray P2,
OutputArray F )

#include <opencv2/sfm/fundamental.hpp>

從投影矩陣獲取基本矩陣。

引數
P1輸入 3x4 第一個投影矩陣。
P2輸入 3x4 第二個投影矩陣。
F輸出 3x3 基本矩陣。

◆ motionFromEssential()

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)

◆ motionFromEssentialChooseSolution()

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 個解決方案的幾何解釋)。

◆ normalizedEightPointSolver()

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')

◆ normalizeFundamental()

void cv::sfm::normalizeFundamental ( InputArray F,
OutputArray F_normalized )

#include <opencv2/sfm/fundamental.hpp>

標準化基本矩陣。

引數
F輸入 3x3 基本矩陣。
F_normalized輸出 3x3 歸一化的基本矩陣。

預設情況下,將基本矩陣除以其 L2 範數。

◆ projectionsFromFundamental()

void cv::sfm::projectionsFromFundamental ( InputArray F,
OutputArray P1,
OutputArray P2 )

#include <opencv2/sfm/fundamental.hpp>

從基本矩陣獲取投影矩陣。

引數
F輸入 3x3 基本矩陣。
P1輸出 3x4 一個可能的投影矩陣。
P2輸出 3x4 另一個可能的投影矩陣。

◆ relativeCameraMotion()

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}\)