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

NVIDIA Optical Flow ハードウェアと Optical Flow SDK 1.0 を用いて2枚の画像間のオプティカルフローベクトルを計算するためのクラス。続きを読む...

#include <opencv2/cudaoptflow.hpp>

Collaboration diagram for cv::cuda::NvidiaOpticalFlow_1_0:

公開型

enum  NVIDIA_OF_PERF_LEVEL {
  NV_OF_PERF_LEVEL_UNDEFINED ,
  NV_OF_PERF_LEVEL_SLOW = 5 ,
  NV_OF_PERF_LEVEL_MEDIUM = 10 ,
  NV_OF_PERF_LEVEL_FAST = 20 ,
  NV_OF_PERF_LEVEL_MAX
}
 

公開メンバ関数

virtual void upSampler (InputArray flow, cv::Size imageSize, int gridSize, InputOutputArray upsampledFlow)=0
 NVIDIA オプティカルフローハードウェアは粒度 gridSize でフローベクトルを生成し、これは関数 getGridSize() を介して問い合わせできる。Upsampler() ヘルパー関数は、最近傍アップサンプリング法を用いてハードウェアが生成したフローベクトルを密な表現(各ピクセルに1つのフローベクトル)に変換する。
 
- Public Member Functions inherited from cv::cuda::NvidiaHWOpticalFlow
virtual void calc (InputArray inputImage, InputArray referenceImage, InputOutputArray flow, Stream &stream=Stream::Null(), InputArray hint=cv::noArray(), OutputArray cost=cv::noArray())=0
 NVIDIA Optical Flow SDKを用いてオプティカルフローを計算する。
 
virtual void collectGarbage ()=0
 すべてのバッファ、コンテキスト、デバイスポインタを解放する。
 
virtual int getGridSize () const =0
 ハードウェアの能力に応じた出力バッファのグリッドサイズを返す。
 
- Public Member Functions inherited from cv::Algorithm
 Algorithm ()
 
virtual ~Algorithm ()
 
virtual void clear ()
 アルゴリズムの状態をクリアする。
 
virtual bool empty () const
 Algorithm が空の場合(たとえば開始直後や読み込みに失敗した後)に true を返す。
 
virtual String getDefaultName () const
 
virtual void read (const FileNode &fn)
 ファイルストレージからアルゴリズムの引数を読み込む。
 
virtual void save (const String &filename) const
 
virtual void write (FileStorage &fs) const
 アルゴリズムの引数をファイルストレージに保存する。
 
void write (FileStorage &fs, const String &name) const
 

静的公開メンバ関数

static Ptr< NvidiaOpticalFlow_1_0create (cv::Size imageSize, cv::cuda::NvidiaOpticalFlow_1_0::NVIDIA_OF_PERF_LEVEL perfPreset=cv::cuda::NvidiaOpticalFlow_1_0::NV_OF_PERF_LEVEL_SLOW, bool enableTemporalHints=false, bool enableExternalHints=false, bool enableCostBuffer=false, int gpuId=0, Stream &inputStream=Stream::Null(), Stream &outputStream=Stream::Null())
 NVIDIA Optical Flow をインスタンス化する。
 
- Static Public Member Functions inherited from cv::Algorithm
template<typename _Tp >
static Ptr< _Tpload (const String &filename, const String &objname=String())
 ファイルからアルゴリズムを読み込む。
 
template<typename _Tp >
static Ptr< _TploadFromString (const String &strModel, const String &objname=String())
 文字列からアルゴリズムを読み込む。
 
template<typename _Tp >
static Ptr< _Tpread (const FileNode &fn)
 ファイルノードからアルゴリズムを読み込む。
 

Additional Inherited Members

- Protected Member Functions inherited from cv::Algorithm
void writeFormat (FileStorage &fs) const
 

詳細説明

NVIDIA Optical Flow ハードウェアと Optical Flow SDK 1.0 を用いて2枚の画像間のオプティカルフローベクトルを計算するためのクラス。

覚え書き
  • NVIDIA Optical Flow の使用例を示すサンプルアプリケーションは opencv_contrib_source_code/modules/cudaoptflow/samples/nvidia_optical_flow.cpp にある
  • NVIDIA Optical Flow と OpenCV の他のオプティカルフローアルゴリズムとの精度および性能を比較するサンプルアプリケーションは opencv_contrib_source_code/modules/cudaoptflow/samples/optical_flow.cpp にある

列挙型メンバ詳解

◆ NVIDIA_OF_PERF_LEVEL

サポートされるオプティカルフローのパフォーマンスレベル。

列挙値
NV_OF_PERF_LEVEL_UNDEFINED 
NV_OF_PERF_LEVEL_SLOW 

Slow パフォーマンスレベルは、最も低い性能と最良の品質をもたらす

NV_OF_PERF_LEVEL_MEDIUM 

Medium パフォーマンスレベルは、低い性能と中程度の品質をもたらす

NV_OF_PERF_LEVEL_FAST 

Fast パフォーマンスレベルは、高い性能と低い品質をもたらす

NV_OF_PERF_LEVEL_MAX 

メンバ関数詳解

◆ create()

static Ptr< NvidiaOpticalFlow_1_0 > cv::cuda::NvidiaOpticalFlow_1_0::create ( cv::Size imageSize,
cv::cuda::NvidiaOpticalFlow_1_0::NVIDIA_OF_PERF_LEVEL perfPreset = cv::cuda::NvidiaOpticalFlow_1_0::NV_OF_PERF_LEVEL_SLOW,
bool enableTemporalHints = false,
bool enableExternalHints = false,
bool enableCostBuffer = false,
int gpuId = 0,
Stream & inputStream = Stream::Null(),
Stream & outputStream = Stream::Null() )
static

NVIDIA Optical Flow をインスタンス化する。

引数
imageSize入力画像のサイズ(ピクセル単位)。
perfPreset省略可能な引数。プリセットの詳細については NV OF SDK のドキュメント を参照。デフォルトは NV_OF_PERF_LEVEL_SLOW。
enableTemporalHints省略可能な引数。時間的ヒントを有効にするフラグ。true に設定すると、ハードウェアは前回の calc() 呼び出しで生成されたフローベクトルを、今回の calc() 呼び出しの内部ヒントとして使用する。連続するビデオフレーム間のフローベクトルを計算する際に有用。デフォルトは false。
enableExternalHints省略可能な引数。外部のヒントバッファを calc() に渡すことを有効にするフラグ。デフォルトは false。
enableCostBuffer省略可能な引数。calc() からのコストバッファ出力を有効にするフラグ。デフォルトは false。
gpuIdオプティカルフローを計算する GPU ID を選択する省略可能な引数。マルチGPUシステムで有用。デフォルトは 0。
inputStreamオプティカルフローアルゴリズムは、入力バッファに対する cuda 前処理を任意に含む場合がある。入力 cuda ストリームを用いて、cuda 前処理タスクを OF HW エンジンとパイプライン化・同期できる。入力ストリームが設定されていない場合、execute 関数は NULL ストリームであるデフォルトストリームを使用する。
outputStreamオプティカルフローアルゴリズムは、出力フローベクトルに対する cuda 後処理を任意に含む場合がある。出力 cuda ストリームを用いて、cuda 後処理タスクを OF HW エンジンとパイプライン化・同期できる。出力ストリームが設定されていない場合、execute 関数は NULL ストリームであるデフォルトストリームを使用する。

◆ upSampler()

virtual void cv::cuda::NvidiaOpticalFlow_1_0::upSampler ( InputArray flow,
cv::Size imageSize,
int gridSize,
InputOutputArray upsampledFlow )
pure virtual

NVIDIA オプティカルフローハードウェアは粒度 gridSize でフローベクトルを生成し、これは関数 getGridSize() を介して問い合わせできる。Upsampler() ヘルパー関数は、最近傍アップサンプリング法を用いてハードウェアが生成したフローベクトルを密な表現(各ピクセルに1つのフローベクトル)に変換する。

引数
flowcalc() によって生成されたフローベクトルを格納する CV_16FC2 型のバッファ。
imageSizeこれらのフローベクトルが生成された入力画像のサイズ(ピクセル単位)。
gridSizecalc() 関数が返すオプティカルフローベクトルの粒度。getGridSize() を使って問い合わせできる。
upsampledFlow型 CV_32FC2 のバッファで、アップサンプリングされたフローベクトルを含む。各フローベクトルは1ピクセルに対応し、pitch-linear レイアウトで格納される。

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