OpenCV 4.11.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() 辅助函数使用最近邻上采样方法将硬件生成的光流向量转换为密集表示(每个像素一个光流向量)。 | |
从 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_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 流可用于将 cuda 预处理任务与 OF 硬件引擎进行流水线处理和同步。如果未设置输入流,则 execute 函数将使用默认流,即 NULL 流; |
outputStream | 光流算法可以选择对输出流向量进行 cuda 后处理。输出 cuda 流可用于将 cuda 后处理任务与 OF 硬件引擎进行流水线处理和同步。如果未设置输出流,则 execute 函数将使用默认流,即 NULL 流; |
|
纯虚函数 |
NVIDIA 光流硬件以 gridSize 粒度生成光流向量,可以通过函数 getGridSize() 查询。Upsampler() 辅助函数使用最近邻上采样方法将硬件生成的光流向量转换为密集表示(每个像素一个光流向量)。
flow | 包含由calc() 生成的流向量的 CV_16FC2 类型缓冲区。 |
imageSize | 为其生成这些流向量的输入图像的大小(以像素为单位)。 |
gridSize | calc() 函数返回的光流向量的粒度。可以使用getGridSize() 查询。 |
upsampledFlow | CV_32FC2 类型的缓冲区,包含上采样的流向量,每个流向量代表 1 个像素,采用 pitch-linear 布局。 |