![]() |
OpenCV 4.12.0
開源計算機視覺
|
使用NVIDIA光流硬體和光流SDK 1.0計算兩幅影像之間光流向量的類。 更多...
#include <opencv2/cudaoptflow.hpp>
公共型別 | |
| 列舉 | 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_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()) |
| 例項化NVIDIA光流。 | |
從 cv::Algorithm 繼承的靜態公共成員函式 | |
| template<typename _Tp > | |
| static Ptr< _Tp > | load (const String &filename, const String &objname=String()) |
| 從檔案中載入演算法。 | |
| template<typename _Tp > | |
| static Ptr< _Tp > | loadFromString (const String &strModel, const String &objname=String()) |
| 從字串載入演算法。 | |
| template<typename _Tp > | |
| static Ptr< _Tp > | read (const FileNode &fn) |
| 從檔案節點讀取演算法。 | |
其他繼承成員 | |
從 cv::Algorithm 繼承的保護成員函式 | |
| void | writeFormat (FileStorage &fs) const |
使用NVIDIA光流硬體和光流SDK 1.0計算兩幅影像之間光流向量的類。
|
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流); |
|
純虛擬函式 |
NVIDIA光流硬體以 gridSize 粒度生成流向量,該粒度可透過函式 getGridSize() 查詢。Upsampler() 輔助函式使用最近鄰上取樣方法將硬體生成的流向量轉換為密集表示(每個畫素1個流向量)。
| flow | 型別為 CV_16FC2 的緩衝區,包含由 calc() 生成的流向量。 |
| imageSize | 生成這些流向量的輸入影像的畫素尺寸。 |
| gridSize | calc() 函式返回的光流向量的粒度。可以使用 getGridSize() 查詢。 |
| upsampledFlow | 型別為 CV_32FC2 的緩衝區,包含上取樣後的流向量,每個流向量對應1個畫素,採用pitch-linear佈局。 |