OpenCV 4.12.0
開源計算機視覺
載入中...
搜尋中...
無匹配項
cv::cuda::NvidiaOpticalFlow_1_0 類參考抽象

使用NVIDIA光流硬體和光流SDK 1.0計算兩幅影像之間光流向量的類。 更多...

#include <opencv2/cudaoptflow.hpp>

cv::cuda::NvidiaOpticalFlow_1_0 的協作圖

公共型別

列舉  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個流向量)。
 
- 從 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光流SDK計算光流。
 
virtual void collectGarbage ()=0
 釋放所有緩衝區、上下文和裝置指標。
 
virtual int getGridSize () const =0
 根據硬體能力返回輸出緩衝區的網格大小。
 
- 從 cv::Algorithm 繼承的公共成員函式
 Algorithm ()
 
virtual ~Algorithm ()
 
virtual void clear ()
 清除演算法狀態。
 
virtual bool empty () const
 如果 演算法 為空(例如,在最開始或讀取失敗後),則返回 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
 

靜態公共成員函式

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光流。
 
- 從 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 1.0計算兩幅影像之間光流向量的類。

注意
  • 使用NVIDIA光流的示例應用程式可在 opencv_contrib_source_code/modules/cudaoptflow/samples/nvidia_optical_flow.cpp 中找到。
  • 一個比較NVIDIA光流與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 

慢速效能級別導致最低效能和最佳質量

NV_OF_PERF_LEVEL_MEDIUM 

中等效能級別導致低效能和中等質量

NV_OF_PERF_LEVEL_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光流。

引數
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流可用於與OF硬體引擎流水線和同步CUDA預處理任務。如果未設定輸入流,執行函式將使用預設流(即NULL流);
outputStream光流演算法可以選擇性地在輸出流向量上進行CUDA後處理。輸出CUDA流可用於與OF硬體引擎流水線和同步CUDA後處理任務。如果未設定輸出流,執行函式將使用預設流(即NULL流);

◆ upSampler()

virtual void cv::cuda::NvidiaOpticalFlow_1_0::upSampler ( InputArray flow,
cv::Size imageSize,
int gridSize,
InputOutputArray upsampledFlow )
純虛擬函式

NVIDIA光流硬體以 gridSize 粒度生成流向量,該粒度可透過函式 getGridSize() 查詢。Upsampler() 輔助函式使用最近鄰上取樣方法將硬體生成的流向量轉換為密集表示(每個畫素1個流向量)。

引數
flow型別為 CV_16FC2 的緩衝區,包含由 calc() 生成的流向量。
imageSize生成這些流向量的輸入影像的畫素尺寸。
gridSizecalc() 函式返回的光流向量的粒度。可以使用 getGridSize() 查詢。
upsampledFlow型別為 CV_32FC2 的緩衝區,包含上取樣後的流向量,每個流向量對應1個畫素,採用pitch-linear佈局。

此類的文件由以下檔案生成