OpenCV 4.11.0
开源计算机视觉
加载中…
搜索中…
无匹配项
cv::cuda::GpuMatND 类参考

#include <opencv2/core/cuda.hpp>

cv::cuda::GpuMatND 协作图

公共类型

使用 IndexArray = std::vector<int>
 
使用 SizeArray = std::vector<int>
 
使用 StepArray = std::vector<size_t>
 

公共成员函数

 GpuMatND ()
 默认构造函数
 
 GpuMatND (const GpuMatND &)=default
 
 GpuMatND (GpuMatND &&) noexcept=default
 
 GpuMatND (SizeArray size, int type)
 
 GpuMatND (SizeArray size, int type, void *data, StepArray step=StepArray())
 
 ~GpuMatND ()
 析构函数
 
GpuMatND clone () const
 创建数组和底层数据的完整副本。此方法创建数组的完整副本。它模仿了 Mat::clone() 的行为,即不考虑原始步长。因此,数组副本是一个连续的数组,占用 total()*elemSize() 字节。
 
GpuMatND clone (Stream &stream) const
 
void create (SizeArray size, int type)
 分配 GPU 内存。假设已经分配了一些 GPU 内存。在这种情况下,此方法可能会在特定条件下选择重用该 GPU 内存:它必须具有相同的大小和类型,不是外部分配的,GPU 内存是连续的(即 isContinuous() 为真),并且不是另一个 GpuMatND 的子矩阵(即 isSubmatrix() 为假)。换句话说,此方法保证此方法分配的 GPU 内存始终是连续的,并且不是另一个 GpuMatND 的子区域。
 
GpuMat createGpuMatHeader () const
 
GpuMat createGpuMatHeader (IndexArray idx, Range rowRange, Range colRange) const
 为 n 维矩阵的二维平面部分创建一个 GpuMat 头。
 
void download (OutputArray dst) const
 
void download (OutputArray dst, Stream &stream) const
 
size_t elemSize () const
 返回元素大小(以字节为单位)
 
size_t elemSize1 () const
 返回元素通道的大小(以字节为单位)
 
bool empty () const
 如果数据为空,则返回 true
 
bool external () const
 如果非空且指向外部(用户分配的)GPU 内存,则返回 true
 
uchargetDevicePtr () const
 返回 GPU 内存第一个字节的指针
 
bool isContinuous () const
 
bool isSubmatrix () const
 如果矩阵是另一个矩阵的子矩阵,则返回 true
 
 operator GpuMat () const
 如果此 GpuMatND 实际上是二维的,则提取 n 维矩阵的二维平面部分。它与 createGpuMatHeader() 的区别在于它克隆了此 GpuMatND 的一部分。
 
GpuMatND operator() (const std::vector< Range > &ranges) const
 提取子矩阵。该运算符为 *this 的指定子数组创建新的头。该运算符为 O(1) 运算,即不复制矩阵数据。
 
GpuMat operator() (IndexArray idx, Range rowRange, Range colRange) const
 提取 n 维矩阵的二维平面部分。它与 createGpuMatHeader(IndexArray, Range, Range) 的区别在于它将此 GpuMatND 的一部分克隆到返回的 GpuMat
 
GpuMatNDoperator= (const GpuMatND &)=default
 
GpuMatNDoperator= (GpuMatND &&) noexcept=default
 
void 释放 ()
 
void swap (GpuMatND &m) noexcept
 
size_t total () const
 返回数组元素的总数
 
size_t totalMemSize () const
 返回底层内存的大小(以字节为单位)
 
int type () const
 返回元素类型
 
void upload (InputArray src)
 
void 上传 (InputArray src, Stream &stream)
 

公有属性

int dims
 矩阵维度
 
int flags
 
SizeArray size
 此数组的形状
 
StepArray step
 

成员类型定义文档

◆ IndexArray

using cv::cuda::GpuMatND::IndexArray = std::vector<int>

◆ SizeArray

using cv::cuda::GpuMatND::SizeArray = std::vector<int>

◆ StepArray

using cv::cuda::GpuMatND::StepArray = std::vector<size_t>

构造函数和析构函数文档

◆ ~GpuMatND()

cv::cuda::GpuMatND::~GpuMatND ( )

析构函数

◆ GpuMatND() [1/5]

cv::cuda::GpuMatND::GpuMatND ( )

默认构造函数

◆ GpuMatND() [2/5]

cv::cuda::GpuMatND::GpuMatND ( SizeArray size,
int type )

这是一个重载的成员函数,为了方便提供。它与上面的函数只有接受的参数不同。

参数
size指定n维数组形状的整数数组。
type数组类型。使用CV_8UC1, ..., CV_16FC4 创建1-4通道矩阵,或 CV_8UC(n), ..., CV_64FC(n) 创建多通道(最多CV_CN_MAX通道)矩阵。

◆ GpuMatND() [3/5]

cv::cuda::GpuMatND::GpuMatND ( SizeArray size,
int type,
void * data,
StepArray step = StepArray() )

这是一个重载的成员函数,为了方便提供。它与上面的函数只有接受的参数不同。

参数
size指定n维数组形状的整数数组。
type数组类型。使用CV_8UC1, ..., CV_16FC4 创建1-4通道矩阵,或 CV_8UC(n), ..., CV_64FC(n) 创建多通道(最多CV_CN_MAX通道)矩阵。
data指向用户数据的指针。带有data和step参数的矩阵构造函数不分配矩阵数据。相反,它们只初始化指向指定数据的矩阵头,这意味着没有复制数据。此操作非常高效,可用于使用OpenCV函数处理外部数据。外部数据不会自动释放,因此您应该注意它。
step对于多维数组,_size.size() 或 _size.size()-1 个步长数组(如果指定,则最后一步必须等于元素大小,否则将添加为元素大小)。如果未指定,则假定矩阵是连续的。

◆ GpuMatND() [4/5]

cv::cuda::GpuMatND::GpuMatND ( const GpuMatND & )
default

◆ GpuMatND() [5/5]

cv::cuda::GpuMatND::GpuMatND ( GpuMatND && )
defaultnoexcept

成员函数文档

◆ clone() [1/2]

GpuMatND cv::cuda::GpuMatND::clone ( ) const

创建数组和底层数据的完整副本。此方法创建数组的完整副本。它模仿了 Mat::clone() 的行为,即不考虑原始步长。因此,数组副本是一个连续的数组,占用 total()*elemSize() 字节。

◆ clone() [2/2]

GpuMatND cv::cuda::GpuMatND::clone ( Stream & stream) const

这是一个重载的成员函数,为了方便提供。它与上面的函数只有接受的参数不同。此重载是非阻塞的,因此即使复制操作未完成,它也可能返回。

◆ create()

void cv::cuda::GpuMatND::create ( SizeArray size,
int type )

分配 GPU 内存。假设已经分配了一些 GPU 内存。在这种情况下,此方法可能会在特定条件下选择重用该 GPU 内存:它必须具有相同的大小和类型,不是外部分配的,GPU 内存是连续的(即 isContinuous() 为真),并且不是另一个 GpuMatND 的子矩阵(即 isSubmatrix() 为假)。换句话说,此方法保证此方法分配的 GPU 内存始终是连续的,并且不是另一个 GpuMatND 的子区域。

◆ createGpuMatHeader() [1/2]

GpuMat cv::cuda::GpuMatND::createGpuMatHeader ( ) const

这是一个重载的成员函数,为了方便提供。它与上面的函数只有接受的参数不同。如果此GpuMatND实际上是二维的,则创建GpuMat头。

注意
返回的GpuMat 使用用户分配数据的构造函数构建。也就是说,它不执行引用计数。
此函数不会增加此GpuMatND的引用计数器。

◆ createGpuMatHeader() [2/2]

GpuMat cv::cuda::GpuMatND::createGpuMatHeader ( IndexArray idx,
Range rowRange,
Range colRange ) const

为 n 维矩阵的二维平面部分创建一个 GpuMat 头。

注意
返回的GpuMat 使用用户分配数据的构造函数构建。也就是说,它不执行引用计数。
此函数不会增加此GpuMatND的引用计数器。

◆ download() [1/2]

void cv::cuda::GpuMatND::download ( OutputArray dst) const

◆ download() [2/2]

void cv::cuda::GpuMatND::download ( OutputArray dst,
Stream & stream ) const

◆ elemSize()

size_t cv::cuda::GpuMatND::elemSize ( ) const

返回元素大小(以字节为单位)

◆ elemSize1()

size_t cv::cuda::GpuMatND::elemSize1 ( ) const

返回元素通道的大小(以字节为单位)

◆ empty()

bool cv::cuda::GpuMatND::empty ( ) const

如果数据为空,则返回 true

◆ external()

bool cv::cuda::GpuMatND::external ( ) const

如果非空且指向外部(用户分配的)GPU 内存,则返回 true

◆ getDevicePtr()

uchar * cv::cuda::GpuMatND::getDevicePtr ( ) const

返回 GPU 内存第一个字节的指针

◆ isContinuous()

bool cv::cuda::GpuMatND::isContinuous ( ) const

如果GpuMatND数据是连续的(即连续行之间没有间隙),则返回true

◆ isSubmatrix()

bool cv::cuda::GpuMatND::isSubmatrix ( ) const

如果矩阵是另一个矩阵的子矩阵,则返回 true

◆ operator GpuMat()

cv::cuda::GpuMatND::operator GpuMat ( ) const

如果此 GpuMatND 实际上是二维的,则提取 n 维矩阵的二维平面部分。它与 createGpuMatHeader() 的区别在于它克隆了此 GpuMatND 的一部分。

注意
此运算符不会增加此GpuMatND的引用计数器;

◆ operator()() [1/2]

GpuMatND cv::cuda::GpuMatND::operator() ( const std::vector< Range > & ranges) const

提取子矩阵。该运算符为 *this 的指定子数组创建新的头。该运算符为 O(1) 运算,即不复制矩阵数据。

参数
ranges沿每个维度选择的范围数组。

◆ operator()() [2/2]

GpuMat cv::cuda::GpuMatND::operator() ( IndexArray idx,
Range rowRange,
Range colRange ) const

提取 n 维矩阵的二维平面部分。它与 createGpuMatHeader(IndexArray, Range, Range) 的区别在于它将此 GpuMatND 的一部分克隆到返回的 GpuMat

注意
此运算符不会增加此GpuMatND的引用计数器;

◆ operator=() [1/2]

GpuMatND & cv::cuda::GpuMatND::operator= ( const GpuMatND & )
default

◆ operator=() [2/2]

GpuMatND & cv::cuda::GpuMatND::operator= ( GpuMatND && )
defaultnoexcept

◆ release()

void cv::cuda::GpuMatND::release ( )

◆ swap()

void cv::cuda::GpuMatND::swap ( GpuMatND & m)
noexcept

◆ total()

size_t cv::cuda::GpuMatND::total ( ) const

返回数组元素的总数

◆ totalMemSize()

size_t cv::cuda::GpuMatND::totalMemSize ( ) const

返回底层内存的大小(以字节为单位)

◆ type()

int cv::cuda::GpuMatND::type ( ) const

返回元素类型

◆ upload() [1/2]

void cv::cuda::GpuMatND::upload ( InputArray src)

◆ upload() [2/2]

void cv::cuda::GpuMatND::upload ( InputArray src,
Stream & stream )

成员数据文档

◆ dims

int cv::cuda::GpuMatND::dims

矩阵维度

◆ flags

int cv::cuda::GpuMatND::flags

包含多个位域

  • 魔术签名
  • 连续性标志
  • 深度
  • 通道数

◆ 尺寸

SizeArray cv::cuda::GpuMatND::size

此数组的形状

◆ 步长

StepArray cv::cuda::GpuMatND::step

步长值 其语义与Mat的步长语义相同。


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