OpenCV  4.10.0
开源计算机视觉库
正在加载...
正在搜索...
无匹配项
公有成员函数 | 所有成员列表
cv::cudacodec::VideoReader 类参考abstract

视频读取器接口,请参见 createVideoReader()更多...

#include <opencv2/cudacodec.hpp>

cv::cudacodec::VideoReader 的协作图

公有成员函数

virtual ~VideoReader ()
 
virtual FormatInfo format () const =0
 返回有关视频文件格式的信息。
 
virtual bool get (const int propertyId, double &propertyVal) const =0
 检索视频源使用的指定属性。
 
virtual bool get (const VideoReaderProps propertyId, double &propertyVal) const =0
 返回指定的 VideoReader 属性。
 
virtual bool getVideoReaderProps (const VideoReaderProps propertyId, double &propertyValOut, double propertyValIn=0) const =0
 
virtual bool grab (cuda::Stream &stream=cuda::Stream::Null())=0
 从视频源获取下一帧。
 
virtual bool nextFrame (cuda::GpuMat &frame, cuda::GpuMat &histogram, cuda::Stream &stream=cuda::Stream::Null())=0
 获取、解码并返回下一视频帧和帧亮度直方图。
 
virtual bool nextFrame (cuda::GpuMat &frame, cuda::Stream &stream=cuda::Stream::Null())=0
 获取、解码并返回下一视频帧。
 
bool retrieve (cuda::GpuMat &frame) const
 返回下一视频帧。
 
bool retrieve (Mat &frame, const size_t idx) const
 返回先前获取的编码视频数据。
 
virtual bool retrieve (OutputArray frame, const size_t idx=static_cast< size_t >(VideoReaderProps::PROP_DECODED_FRAME_IDX)) const =0
 返回先前获取的视频数据。
 
virtual bool set (const ColorFormat colorFormat)=0
 nextFrame()/retrieve() 返回的帧设置所需的 ColorFormat。
 
virtual bool set (const VideoReaderProps propertyId, const double propertyVal)=0
 VideoReader 中设置属性。
 
bool setVideoReaderProps (const VideoReaderProps propertyId, double propertyVal)
 

详细描述

视频读取器接口,请参见 createVideoReader()

如果安装了 Nvidia 的视频编解码器 SDK,则可用。

解码支持取决于 GPU,有关详细信息,请参阅 Nvidia 视频编解码器 SDK 视频编码和解码 GPU 支持矩阵。

注意
  • 有关如何使用 VideoReader 接口的示例,请参见 opencv_source_code/samples/gpu/video_reader.cpp

构造函数和析构函数文档

◆ ~VideoReader()

virtual cv::cudacodec::VideoReader::~VideoReader ( )
inlinevirtual

成员函数文档

◆ format()

virtual FormatInfo cv::cudacodec::VideoReader::format ( ) const
纯虚函数

返回有关视频文件格式的信息。

◆ get() [1/2]

virtual bool cv::cudacodec::VideoReader::get ( const int  propertyId,
double &  propertyVal 
) const
纯虚函数

检索视频源使用的指定属性。

参数
propertyId来自 cv::VideoCaptureProperties 的属性标识符(例如 cv::CAP_PROP_POS_MSECcv::CAP_PROP_POS_FRAMES,...)或来自 视频 I/O API 后端的其他标志 的一个标识符。
propertyVal指定属性的值。
返回值
true,除非属性未设置或不受支持。

◆ get() [2/2]

virtual bool cv::cudacodec::VideoReader::get ( const VideoReaderProps  propertyId,
double &  propertyVal 
) const
纯虚函数

返回指定的 VideoReader 属性。

参数
propertyId来自 cv::cudacodec::VideoReaderProps 的属性标识符(例如 cv::cudacodec::VideoReaderProps::PROP_DECODED_FRAME_IDXcv::cudacodec::VideoReaderProps::PROP_EXTRA_DATA_INDEX,...)。
propertyVal
返回值
true,除非属性不受支持。

◆ getVideoReaderProps()

virtual bool cv::cudacodec::VideoReader::getVideoReaderProps ( const VideoReaderProps  propertyId,
double &  propertyValOut,
double  propertyValIn = 0 
) const
纯虚函数

◆ grab()

virtual bool cv::cudacodec::VideoReader::grab ( cuda::Stream stream = cuda::Stream::Null())
纯虚函数

从视频源获取下一帧。

参数
stream异步版本的流。
返回值
成功时为 true(非零)。

该方法/函数从视频文件或相机获取下一帧,并在成功时返回 true(非零)。

该函数的主要用途是在 rawMode 启用时读取编码和解码的视频数据。在 rawMode 启用时,可以在调用 retrieve() 后调用 grab(),以检索自上次调用 grab() 或创建 VideoReader 以来与当前视频源关联的所有数据。

◆ nextFrame() [1/2]

virtual bool cv::cudacodec::VideoReader::nextFrame ( cuda::GpuMat frame,
cuda::GpuMat histogram,
cuda::Stream stream = cuda::Stream::Null() 
)
纯虚函数

获取、解码并返回下一视频帧和帧亮度直方图。

参数
[out]frame视频帧。
[out]histogram编码帧亮度分量的直方图,请参见注释。
stream异步版本的流。
返回值
如果未获取任何帧,则为 false

如果未获取任何帧(视频文件中没有更多帧),则方法返回 false。如果发生错误,则方法会抛出 Exception

注意
直方图数据由 NVDEC 在解码过程中收集,因此不会产生性能损失。NVDEC 只计算解码输出的亮度分量的直方图数据,而不会计算后处理帧(即应用缩放、裁剪等操作时的直方图数据)。如果源使用有限范围的亮度值进行编码 (FormatInfo::videoFullRangeFlag == false),则直方图箱值将对应于此有限范围的值,需要将其映射到与 cuda::calcHist() 的输出相同。如果需要,可以使用 MapHist() 实用程序函数在主机上执行此映射。

◆ nextFrame() [2/2]

virtual bool cv::cudacodec::VideoReader::nextFrame ( cuda::GpuMat frame,
cuda::Stream stream = cuda::Stream::Null() 
)
纯虚函数

获取、解码并返回下一视频帧。

参数
[out]frame视频帧。
stream异步版本的流。
返回值
如果未获取任何帧,则为 false

如果未获取任何帧(视频文件中没有更多帧),则方法返回 false。如果发生错误,则方法会抛出 Exception

◆ retrieve() [1/3]

bool cv::cudacodec::VideoReader::retrieve ( cuda::GpuMat frame) const
inline

返回下一视频帧。

参数
[out]frame视频帧。如果未调用 grab(),则此帧将为空。
返回值
如果未获取任何帧,则为 false

该方法返回自上次调用 grab() 以来与当前视频源关联的数据。如果不存在数据,则方法返回 false,并且函数返回一个空图像。

◆ retrieve() [2/3]

bool cv::cudacodec::VideoReader::retrieve ( Mat frame,
const size_t  idx 
) const
inline

返回先前获取的编码视频数据。

参数
[out]frame编码后的视频数据。
idx确定图像中返回的数据。返回的数据可以是
  • 如果可用,额外数据,idx = get(PROP_EXTRA_DATA_INDEX)。
  • 原始编码数据包。要检索包 i,idx = get(PROP_RAW_PACKAGES_BASE_INDEX) + i,其中 i < get(PROP_NUMBER_OF_RAW_PACKAGES_SINCE_LAST_GRAB)
返回值
如果未获取任何帧,则为 false

该方法返回与当前视频源关联的数据,自上次调用 grab() 或创建 VideoReader 以来。如果不存在数据,该方法返回 false,并且该函数返回一个空图像。

◆ retrieve() [3/3]

virtual bool cv::cudacodec::VideoReader::retrieve ( OutputArray  frame,
const size_t  idx = static_cast< size_t >(VideoReaderProps::PROP_DECODED_FRAME_IDX) 
) const
纯虚函数

返回先前获取的视频数据。

参数
[out]frame返回的数据,取决于提供的 idx。
idx确定图像中返回的数据。返回的数据可以是
  • 解码后的帧,idx = get(PROP_DECODED_FRAME_IDX)。
  • 如果可用,额外数据,idx = get(PROP_EXTRA_DATA_INDEX)。
  • 原始编码数据包。要检索包 i,idx = get(PROP_RAW_PACKAGES_BASE_INDEX) + i,其中 i < get(PROP_NUMBER_OF_RAW_PACKAGES_SINCE_LAST_GRAB)
返回值
如果未获取任何帧,则为 false

该方法返回与当前视频源关联的数据,自上次调用 grab() 或创建 VideoReader 以来。如果不存在数据,该方法返回 false,并且该函数返回一个空图像。

◆ set() [1/2]

virtual bool cv::cudacodec::VideoReader::set ( const ColorFormat  colorFormat)
纯虚函数

nextFrame()/retrieve() 返回的帧设置所需的 ColorFormat。

参数
colorFormatColorFormat 的值。
返回值
true,除非 colorFormat 不受支持。

◆ set() [2/2]

virtual bool cv::cudacodec::VideoReader::set ( const VideoReaderProps  propertyId,
const double  propertyVal 
)
纯虚函数

VideoReader 中设置属性。

参数
propertyId来自 cv::cudacodec::VideoReaderProps 的属性标识符(例如 cv::cudacodec::VideoReaderProps::PROP_DECODED_FRAME_IDXcv::cudacodec::VideoReaderProps::PROP_EXTRA_DATA_INDEX,...)。
propertyVal属性的值。
返回值
true,如果属性已设置。

◆ setVideoReaderProps()

bool cv::cudacodec::VideoReader::setVideoReaderProps ( const VideoReaderProps  propertyId,
double  propertyVal 
)
inline

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