#include <opencv2/core/cuda.hpp>
|
| | 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() 为 true),并且不是另一个 GpuMatND 的子矩阵(即 isSubmatrix() 为 false)。换句话说,此方法保证由它分配的 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 |
| | 如果数据为空,则返回 true
|
| |
| bool | external () const |
| | 如果非空且指向外部(用户分配的)GPU 内存,则返回 true
|
| |
| uchar * | getDevicePtr () const |
| | 返回指向 GPU 内存第一个字节的指针
|
| |
| bool | isContinuous () const |
| |
| bool | isSubmatrix () const |
| | 如果矩阵是另一个矩阵的子矩阵,则返回 true
|
| |
| | operator GpuMat () const |
| | 如果此 GpuMatND 实际上是 2D 的,则提取 N 维矩阵的 2D 平面部分。它与 createGpuMatHeader() 的不同之处在于它克隆了此 GpuMatND 的一部分。
|
| |
| GpuMatND | operator() (const std::vector< Range > &ranges) const |
| | 提取子矩阵。此运算符为 *this 的指定子数组创建一个新头。此操作是 O(1) 操作,即不复制矩阵数据。
|
| |
| GpuMat | operator() (IndexArray idx, Range rowRange, Range colRange) const |
| | 提取 N 维矩阵的 2D 平面部分。它与 createGpuMatHeader(IndexArray, Range, Range) 的不同之处在于它将此 GpuMatND 的一部分克隆到返回的 GpuMat。
|
| |
| GpuMatND & | operator= (const GpuMatND &)=default |
| |
| GpuMatND & | operator= (GpuMatND &&) noexcept=default |
| |
| void | release () |
| |
| void | swap (GpuMatND &m) noexcept |
| |
| size_t | total () const |
| | 返回数组元素的总数
|
| |
| size_t | totalMemSize () const |
| | 返回底层内存的大小(以字节为单位)
|
| |
| int | type () const |
| | 返回元素类型
|
| |
| void | InputArray src) |
| |
| void | upload (InputArray src, Stream &stream) |
| |
◆ IndexArray
◆ SizeArray
◆ StepArray
◆ ~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]
这是重载的成员函数,为方便起见而提供。它与上述函数的区别仅在于其接受的参数。
- 参数
-
| 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]
这是重载的成员函数,为方便起见而提供。它与上述函数的区别仅在于其接受的参数。此重载是非阻塞的,因此即使复制操作尚未完成,它也可能返回。
◆ create()
| void cv::cuda::GpuMatND::create |
( |
SizeArray | size, |
|
|
int | type ) |
◆ createGpuMatHeader() [1/2]
| GpuMat cv::cuda::GpuMatND::createGpuMatHeader |
( |
| ) |
const |
这是重载的成员函数,为方便起见而提供。它与上述函数的区别仅在于其接受的参数。如果此 GpuMatND 实际上是 2D 的,则创建 GpuMat 头。
- 注意
- 返回的 GpuMat 是使用用户分配数据的构造函数构建的。也就是说,它不执行引用计数。
- 此函数不增加此 GpuMatND 的引用计数器。
◆ createGpuMatHeader() [2/2]
◆ download() [1/2]
| void cv::cuda::GpuMatND::download |
( |
OutputArray | dst | ) |
const |
◆ download() [2/2]
◆ elemSize()
| size_t cv::cuda::GpuMatND::elemSize |
( |
| ) |
const |
◆ elemSize1()
| size_t cv::cuda::GpuMatND::elemSize1 |
( |
| ) |
const |
◆ empty()
| bool cv::cuda::GpuMatND::empty |
( |
| ) |
const |
◆ external()
| bool cv::cuda::GpuMatND::external |
( |
| ) |
const |
如果非空且指向外部(用户分配的)GPU 内存,则返回 true
◆ getDevicePtr()
| uchar * cv::cuda::GpuMatND::getDevicePtr |
( |
| ) |
const |
◆ isContinuous()
| bool cv::cuda::GpuMatND::isContinuous |
( |
| ) |
const |
◆ isSubmatrix()
| bool cv::cuda::GpuMatND::isSubmatrix |
( |
| ) |
const |
◆ operator GpuMat()
| cv::cuda::GpuMatND::operator GpuMat |
( |
| ) |
const |
◆ operator()() [1/2]
| GpuMatND cv::cuda::GpuMatND::operator() |
( |
const std::vector< Range > & | ranges | ) |
const |
提取子矩阵。此运算符为 *this 的指定子数组创建一个新头。此操作是 O(1) 操作,即不复制矩阵数据。
- 参数
-
◆ operator()() [2/2]
提取 N 维矩阵的 2D 平面部分。它与 createGpuMatHeader(IndexArray, Range, Range) 的不同之处在于它将此 GpuMatND 的一部分克隆到返回的 GpuMat。
- 注意
- 此运算符不增加此 GpuMatND 的引用计数器;
◆ operator=() [1/2]
◆ operator=() [2/2]
◆ 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]
◆ upload() [2/2]
◆ dims
| int cv::cuda::GpuMatND::dims |
◆ flags
| int cv::cuda::GpuMatND::flags |
◆ size
◆ step
本类的文档生成自以下文件: