OpenCV  4.10.0
开源计算机视觉库
正在加载...
正在搜索...
没有匹配项
公共类型 | 公共成员函数 | 公共属性 | 所有成员列表
cv::cuda::GpuMatND 类参考

#include <opencv2/core/cuda.hpp>

cv::cuda::GpuMatND 的协作图

公共类型

using IndexArray = std::vector< int >
 
using SizeArray = std::vector< int >
 
using 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 维矩阵的 2D 平面部分创建 GpuMat 头。
 
void download (OutputArray dst) const
 
void download (OutputArray dst, Stream &stream) const
 
size_t elemSize () const
 返回以字节为单位的元素大小
 
size_t elemSize1 () const
 返回以字节为单位的元素通道大小
 
bool empty () const
 如果数据为 null,则返回 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 upload (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指向用户数据的指针。接收数据和步长参数的矩阵构造函数不会分配矩阵数据。相反,它们只初始化指向指定数据的矩阵头,这意味着不会复制任何数据。此操作非常有效,可用于使用 OpenCV 函数处理外部数据。外部数据不会自动释放,因此您应该注意它。
step如果为多维数组,则为 _size.size()-1 步的数组(最后一步始终设置为元素大小)。如果未指定,则假定矩阵为连续的。

◆ GpuMatND() [4/5]

cv::cuda::GpuMatND::GpuMatND ( const GpuMatND )
默认

◆ GpuMatND() [5/5]

cv::cuda::GpuMatND::GpuMatND ( GpuMatND &&  )
默认noexcept

成员函数文档

◆ clone() [1/2]

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

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

◆ clone() [2/2]

GpuMatND cv::cuda::GpuMatND::clone ( 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 实际上是 2D,则创建一个 GpuMat 头文件。

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

◆ createGpuMatHeader() [2/2]

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

为 n 维矩阵的 2D 平面部分创建 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  
) const

◆ elemSize()

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

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

◆ elemSize1()

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

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

◆ empty()

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

如果数据为 null,则返回 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 > &  范围) const

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

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

◆ 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 )
默认

◆ operator=() [2/2]

GpuMatND & cv::cuda::GpuMatND::operator= ( GpuMatND &&  )
默认noexcept

◆ 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  
)

成员数据文档

◆ dims

int cv::cuda::GpuMatND::dims

矩阵维数

◆ flags

int cv::cuda::GpuMatND::flags

包含多个位域

  • 神奇签名
  • 连续性标志
  • 深度
  • 通道数

◆ size

SizeArray cv::cuda::GpuMatND::size

此数组的形状

◆ step

StepArray cv::cuda::GpuMatND::step

步长值 它们的语义与 Mat 的步长的语义相同。


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