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

KinectFusionの実装。 続き...

#include <opencv2/rgbd/kinfu.hpp>

Collaboration diagram for cv::kinfu::KinFu:

公開メンバ関数

virtual ~KinFu ()
 
virtual void getCloud (OutputArray points, OutputArray normals) const =0
 現在の3Dメッシュの点と法線を取得する。
 
virtual void getNormals (InputArray points, OutputArray normals) const =0
 与えられた点に対する法線を計算する。
 
virtual const ParamsgetParams () const =0
 現在のパラメータを取得する。
 
virtual void getPoints (OutputArray points) const =0
 現在の3Dメッシュの点を取得する。
 
virtual Affine3f getPose () const =0
 ボクセル空間における現在の姿勢を取得する。
 
virtual void render (OutputArray image) const =0
 ボリュームを画像にレンダリングする。
 
virtual void render (OutputArray image, const Matx44f &cameraPose) const =0
 ボリュームを画像にレンダリングする。
 
virtual void reset ()=0
 アルゴリズムをリセットする。
 
virtual bool update (InputArray depth)=0
 次の深度フレームを処理する。
 

静的公開メンバ関数

static Ptr< KinFucreate (const Ptr< Params > &_params)
 

詳細説明

KinectFusionの実装。

このクラスは [139] の論文で説明されている3D再構成アルゴリズムを実装する。

これは深度センサ(あるいはステレオカメラのマッチングアルゴリズムやレイマーチングレンダラなど、任意の深度画像ソース)から取得された一連の深度画像を入力とする。出力は、点群とその法線のベクトルとして取得することも、与えられたカメラ姿勢からPhongレンダリングすることもできる。

モデルの内部表現は、表面までの距離の一種であるTSDF値を保持するボクセル直方体である(TSDFの詳細については [139] のTSDFに関する論文を参照)。その表現に対するインターフェースはまだない。

KinFu は利用可能であれば自動的にOpenCLアクセラレーションを使用する。これを明示的に有効化または無効化するには cv::setUseOptimized() または cv::ocl::setUseOpenCL() を使用する。

この実装は kinfu-remake に基づく。

KinectFusionアルゴリズムは特許化されており、その使用はこのモジュールディレクトリの README.md ファイルに記載された特許リストにより制限される可能性があることに注意。

そのため、KinectFusionを使用するにはCMakeでOPENCV_ENABLE_NONFREEオプションを設定する必要がある。

構築子と解体子の詳解

◆ ~KinFu()

virtual cv::kinfu::KinFu::~KinFu ( )
virtual

メンバ関数詳解

◆ create()

static Ptr< KinFu > cv::kinfu::KinFu::create ( const Ptr< Params > & _params)
static
Python:
cv.kinfu.KinFu.create(_params) -> retval
cv.kinfu.KinFu_create(_params) -> retval

◆ getCloud()

virtual void cv::kinfu::KinFu::getCloud ( OutputArray points,
OutputArray normals ) const
pure virtual
Python:
cv.kinfu.KinFu.getCloud([, points[, normals]]) -> points, normals

現在の3Dメッシュの点と法線を取得する。

法線の順序は点の順序に対応する。点の順序は未定義である。

引数
points4要素のfloatベクトルである点のベクトル
normals4要素のfloatベクトルである法線のベクトル

◆ getNormals()

virtual void cv::kinfu::KinFu::getNormals ( InputArray points,
OutputArray normals ) const
pure virtual
Python:
cv.kinfu.KinFu.getNormals(points[, normals]) -> normals

与えられた点に対する法線を計算する。

引数
points4要素のfloatベクトルである点の入力ベクトル
normals4要素のfloatベクトルである対応する法線の出力ベクトル

◆ getParams()

virtual const Params & cv::kinfu::KinFu::getParams ( ) const
pure virtual

現在のパラメータを取得する。

◆ getPoints()

virtual void cv::kinfu::KinFu::getPoints ( OutputArray points) const
pure virtual
Python:
cv.kinfu.KinFu.getPoints([, points]) -> points

現在の3Dメッシュの点を取得する。

点の順序は未定義である。

引数
points4要素のfloatベクトルである点のベクトル

◆ getPose()

virtual Affine3f cv::kinfu::KinFu::getPose ( ) const
pure virtual

ボクセル空間における現在の姿勢を取得する。

◆ render() [1/2]

virtual void cv::kinfu::KinFu::render ( OutputArray image) const
pure virtual
Python:
cv.kinfu.KinFu.render([, image]) -> image
cv.kinfu.KinFu.render(cameraPose[, image]) -> image

ボリュームを画像にレンダリングする。

Phongシェーディングを用いてTSDFの0等値面を CV_8UC4 の Mat にレンダリングする。光源のポーズは KinFu のパラメータで固定されている。

引数
image結果の画像

◆ render() [2/2]

virtual void cv::kinfu::KinFu::render ( OutputArray image,
const Matx44f & cameraPose ) const
pure virtual
Python:
cv.kinfu.KinFu.render([, image]) -> image
cv.kinfu.KinFu.render(cameraPose[, image]) -> image

ボリュームを画像にレンダリングする。

Phongシェーディングを用いてTSDFの0等値面を CV_8UC4 の Mat にレンダリングする。光源のポーズは KinFu のパラメータで固定されている。

引数
image結果の画像
cameraPoseレンダリング元となるカメラの姿勢。空の場合は、最後のフレームのカメラ姿勢である現在の姿勢からレンダリングする。

◆ reset()

virtual void cv::kinfu::KinFu::reset ( )
pure virtual
Python:
cv.kinfu.KinFu.reset() -> None

アルゴリズムをリセットする。

現在のモデルをクリアし、姿勢をリセットする。

◆ update()

virtual bool cv::kinfu::KinFu::update ( InputArray depth)
pure virtual
Python:
cv.kinfu.KinFu.update(depth) -> retval

次の深度フレームを処理する。

ICPで計算された姿勢に基づいて、深度をボクセル空間に統合する。入力画像が別の型の場合、内部でCV_32Fに変換される。

引数
depthサイズとビット深度のスケールがアルゴリズムのパラメータで記述されたシングルチャンネル画像
戻り値
新しいフレームを現在のシーンと整合させることに成功した場合はtrue、そうでない場合はfalse

このクラス詳解は次のファイルから抽出されました: