OpenCV 4.13.0
開源計算機視覺庫 (Open Source Computer Vision)
正在載入...
正在搜尋...
未找到匹配項
cv::cuda::NvidiaHWOpticalFlow 類參考抽象

使用 NVIDIA 光流 SDK 的光流演算法的基礎介面。更多...

#include <opencv2/cudaoptflow.hpp>

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
 根據硬體能力返回輸出緩衝區的網格大小。
 
- 從 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
 
void write (const Ptr< FileStorage > &fs, const String &name=String()) const
 
virtual void write (FileStorage &fs) const
 將演算法引數儲存在檔案儲存中。
 
void write (FileStorage &fs, const String &name) const
 

更多繼承的成員

- 從 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)
 從檔案節點中讀取演算法。
 
- 從 cv::Algorithm 繼承的受保護成員函式
void writeFormat (FileStorage &fs) const
 

詳細說明

使用 NVIDIA 光流 SDK 的光流演算法的基礎介面。

成員函式說明

◆ calc()

virtual void cv::cuda::NvidiaHWOpticalFlow::calc ( InputArray inputImage,
InputArray referenceImage,
InputOutputArray flow,
流 (Stream) & stream = Stream::Null(),
InputArray hint = cv::noArray(),
OutputArray cost = cv::noArray() )
純虛擬函式

使用 NVIDIA Optical Flow SDK 計算光流。

從 Turing 開始的 NVIDIA GPU 包含一個專用的硬體加速器,用於計算影像對之間的光流向量。光流硬體加速器生成基於塊的光流向量。塊的大小取決於所使用的硬體,並且可以透過函式 getGridSize() 進行查詢。如果需要,可以使用 upSampler() 輔助函式將硬體生成的基於塊的流向量轉換為密集表示(即每畫素流向量)。流向量以 CV_16SC2 格式儲存,其中每個流向量的 x 和 y 分量以 16 位有符號定點表示 S10.5。

引數
inputImage輸入影像。
referenceImage與 inputImage 相同大小和相同型別的參考影像。
flow一個包含 inputImage.Size() / getGridSize() 個 CV_16SC2 格式的光流向量的緩衝區。
強烈建議在 create() 函式中將光流向量預處理和後處理的 CUDA 流設定為每會話一次,作為光流會話建立的一部分。此引數保留用於向後相容,並可能在將來移除。預設值為 NULL 流;
提示 (hint)如果客戶端提供外部提示,則為提示緩衝區。必須具有與 flow 緩衝區相同的尺寸。呼叫者可以提供流向量作為光流計算的提示。
成本Cost 緩衝區包含表示每個生成的光流向量置信度的數字。成本越高,置信度越低。Cost 緩衝區為 CV_32SC1 型別。
注意
  • 如果從多個執行緒呼叫 calc() 函式,客戶端必須在每次呼叫周圍使用臨界區。

◆ collectGarbage()

virtual void cv::cuda::NvidiaHWOpticalFlow::collectGarbage ( )
純虛擬函式

釋放所有緩衝區、上下文和裝置指標。

◆ getGridSize()

virtual int cv::cuda::NvidiaHWOpticalFlow::getGridSize ( ) const
純虛擬函式

根據硬體能力返回輸出緩衝區的網格大小。


該類的文件由以下檔案生成: