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