OpenCV 4.12.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() 為 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
 
uchargetDevicePtr () 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
 
GpuMatNDoperator= (const GpuMatND &)=default
 
GpuMatNDoperator= (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)
 

公共屬性

int dims
 矩陣維度
 
int flags
 
SizeArray size
 此陣列的形狀
 
StepArray step
 

成員 Typedef 文件

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

這是過載的成員函式,為方便起見而提供。它與上述函式的區別僅在於其接受的引數。此過載是非阻塞的,因此即使複製操作尚未完成,它也可能返回。

◆ create()

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

分配 GPU 記憶體。假設已經分配了一些 GPU 記憶體。在這種情況下,此方法可以選擇在特定條件下重用該 GPU 記憶體:它必須具有相同的尺寸和型別,不是外部分配的,GPU 記憶體是連續的(即 isContinuous() 為 true),並且不是另一個 GpuMatND 的子矩陣(即 isSubmatrix() 為 false)。換句話說,此方法保證由它分配的 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 & 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 實際上是 2D 的,則提取 N 維矩陣的 2D 平面部分。它與 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 維矩陣的 2D 平面部分。它與 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

包含多個位欄位

  • 魔術簽名
  • 連續性標誌
  • 深度
  • 通道數

◆ size

SizeArray cv::cuda::GpuMatND::size

此陣列的形狀

◆ step

StepArray cv::cuda::GpuMatND::step

步長值。其語義與 Mat 的步長語義相同。


本類的文件生成自以下檔案: