OpenCV  4.10.0
开源计算机视觉
加载中...
搜索中...
无匹配项
公共类型 | 公共成员函数 | 静态公共成员函数 | 所有成员列表
cv::cuda::NvidiaOpticalFlow_1_0 类参考abstract

使用 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() 帮助程序函数使用最近邻上采样方法将硬件生成的光流向量转换为密集表示(每个像素一个光流向量)。
 
- 从 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
 如果 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
 

静态公共成员函数

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 流可用于将 cuda 预处理任务与 OF 硬件引擎进行流水线处理和同步。如果未设置输入流,则 execute 函数将使用默认流,即 NULL 流;
outputStream光流算法可以选择性地在输出流向量上进行 cuda 后处理。输出 cuda 流可用于将 cuda 后处理任务与 OF 硬件引擎进行流水线处理和同步。如果未设置输出流,则 execute 函数将使用默认流,即 NULL 流;

◆ upSampler()

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

NVIDIA 光流硬件以 gridSize 为粒度生成光流向量,可以通过函数 getGridSize() 查询。Upsampler() 帮助程序函数使用最近邻上采样方法将硬件生成的光流向量转换为密集表示(每个像素一个光流向量)。

参数
flow类型为 CV_16FC2 的缓冲区,包含由 calc() 生成的流向量。
imageSize为这些流向量生成输入图像的像素大小。
gridSizecalc() 函数返回的光流向量的粒度。可以使用 getGridSize() 查询。
upsampledFlow类型为 CV_32FC2 的缓冲区,包含上采样的流向量,每个流向量对应 1 个像素,以 pitch 线性布局排列。

此类的文档是从以下文件生成的