OpenCV 5.0.0
Open Source Computer Vision
読み込み中...
検索中...
見つかりません
🤖 AIによる機械翻訳(非公式) — これは OpenCV 5.0.0 公式リファレンス(英語)を AI (Claude) で自動翻訳したものです。訳に誤りを含む場合があります。正確な情報は 公式英語版(原文) を参照してください。

詳細説明

覚え書き
  • これは Ceres Solver が正しくインストールされている場合にのみコンパイルされる点に注意すること。
    インストール手順については以下のチュートリアルを確認すること: SFM モジュールのインストール

関数

void cv::sfm::reconstruct (const std::vector< String > images, OutputArray Ps, OutputArray points3d, InputOutputArray K, bool is_projective=false)
 自動キャリブレーションを行いながら2D画像から3D点を再構成する。
 
void cv::sfm::reconstruct (const std::vector< String > images, OutputArray Rs, OutputArray Ts, InputOutputArray K, OutputArray points3d, bool is_projective=false)
 自動キャリブレーションを行いながら2D画像から3D点を再構成する。
 
void cv::sfm::reconstruct (InputArrayOfArrays points2d, OutputArray Ps, OutputArray points3d, InputOutputArray K, bool is_projective=false)
 自動キャリブレーションを行いながら2D対応点から3D点を再構成する。
 
void cv::sfm::reconstruct (InputArrayOfArrays points2d, OutputArray Rs, OutputArray Ts, InputOutputArray K, OutputArray points3d, bool is_projective=false)
 自動キャリブレーションを行いながら2D対応点から3D点を再構成する。
 

関数詳解

◆ reconstruct() [1/4]

void cv::sfm::reconstruct ( const std::vector< String > images,
OutputArray Ps,
OutputArray points3d,
InputOutputArray K,
bool is_projective = false )

#include <opencv2/sfm/reconstruct.hpp>

オートキャリブレーションを行いながら2D画像から3D点を復元する。

引数
images画像パスを格納した文字列のベクトル。
Ps各画像の 3x4 射影行列を格納する出力ベクトル。
points3d推定された3D点を格納する出力配列。
K入出力カメラ行列 \(K = \vecthreethree{f_x}{0}{c_x}{0}{f_y}{c_y}{0}{0}{1}\)。入力引数は初期推定値として使用される。
is_projectivetrue の場合、カメラは射影的であると仮定する。

このメソッドは下記のシグネチャを呼び出し、推定された K、R、t から射影行列を抽出する。

覚え書き
  • 画像は画像シーケンスのように順序付けられていなければならない。さらに、各フレームは可能な限り前後のフレームに近いものであるべきである。
  • 現時点では、2D点トラックの計算に DAISY 特徴が使用されており、3〜4枚の画像に対してのみ機能する。

◆ reconstruct() [2/4]

void cv::sfm::reconstruct ( const std::vector< String > images,
OutputArray Rs,
OutputArray Ts,
InputOutputArray K,
OutputArray points3d,
bool is_projective = false )

#include <opencv2/sfm/reconstruct.hpp>

オートキャリブレーションを行いながら2D画像から3D点を復元する。

引数
images画像パスを格納した文字列のベクトル。
Rsカメラの 3x3 回転を格納する出力ベクトル。
Tsカメラの3x1並進の出力ベクトル。
points3d推定された3D点を格納する出力配列。
K入出力カメラ行列 \(K = \vecthreethree{f_x}{0}{c_x}{0}{f_y}{c_y}{0}{0}{1}\)。入力引数は初期推定値として使用される。
is_projectivetrue の場合、カメラは射影的であると仮定する。

内部的には、SFMLibmvEuclideanReconstruction クラスをインスタンス化し、いくつかのデフォルト引数で libmv simple pipeline ルーチンを呼び出す。

覚え書き
  • 画像は画像シーケンスのように順序付けられていなければならない。さらに、各フレームは可能な限り前後のフレームに近いものであるべきである。
  • 現時点では、2D点トラックの計算に DAISY 特徴が使用されており、3〜4枚の画像に対してのみ機能する。
  • シーン復元の動作例については、次のチュートリアルを参照のこと: シーン復元

◆ reconstruct() [3/4]

void cv::sfm::reconstruct ( InputArrayOfArrays points2d,
OutputArray Ps,
OutputArray points3d,
InputOutputArray K,
bool is_projective = false )

#include <opencv2/sfm/reconstruct.hpp>

オートキャリブレーションを行いながら2D対応点から3D点を復元する。

引数
points2d2D点のベクトルのベクトルの入力(内側のベクトルが画像ごとに対応する)。
Ps各画像の 3x4 射影行列を格納する出力ベクトル。
points3d推定された3D点を格納する出力配列。
K入出力カメラ行列 \(K = \vecthreethree{f_x}{0}{c_x}{0}{f_y}{c_y}{0}{0}{1}\)。入力引数は初期推定値として使用される。
is_projectivetrue の場合、カメラは射影的であると仮定する。

このメソッドは下記のシグネチャを呼び出し、推定された K、R、t から射影行列を抽出する。

覚え書き
  • トラックは可能な限り正確でなければならない。外れ値は処理されず、外れ値に対して非常に敏感である。

◆ reconstruct() [4/4]

void cv::sfm::reconstruct ( InputArrayOfArrays points2d,
OutputArray Rs,
OutputArray Ts,
InputOutputArray K,
OutputArray points3d,
bool is_projective = false )

#include <opencv2/sfm/reconstruct.hpp>

オートキャリブレーションを行いながら2D対応点から3D点を復元する。

引数
points2d2D点のベクトルのベクトルの入力(内側のベクトルが画像ごとに対応する)。
Rsカメラの 3x3 回転を格納する出力ベクトル。
Tsカメラの3x1並進の出力ベクトル。
points3d推定された3D点を格納する出力配列。
K入出力カメラ行列 \(K = \vecthreethree{f_x}{0}{c_x}{0}{f_y}{c_y}{0}{0}{1}\)。入力引数は初期推定値として使用される。
is_projectivetrue の場合、カメラは射影的であると仮定する。

内部的には、SFMLibmvEuclideanReconstruction クラスをインスタンス化し、いくつかのデフォルト引数で libmv simple pipeline ルーチンを呼び出す。

覚え書き
  • トラックは可能な限り正確でなければならない。外れ値は処理されず、外れ値に対して非常に敏感である。
  • カメラ運動復元の動作例については、次のチュートリアルを参照のこと: カメラの動き推定