OpenCV 4.5.3(日本語機械翻訳)
公開型 | 公開メンバ関数 | 公開変数類 | 全メンバ一覧
cv::cuda::GpuMatND クラス

公開型

using SizeArray = std::vector< int >
using StepArray = std::vector< size_t >
using IndexArray = std::vector< int >

公開メンバ関数

~GpuMatND ()
デストラクタ
GpuMatND ()
デフォルトコンストラクタ
GpuMatND (SizeArray size, int type)
GpuMatND (SizeArray size, int type, void *data, StepArray step=StepArray())
void create (SizeArray size, int type)
GPU メモリを割り当てます。すでに何らかのGPUメモリが割り当てられているとします。その場合、このメソッドは、特定の条件の下で、そのGPUメモリを再利用することを選択できます。すなわち、同じサイズとタイプであること、外部から割り当てられていないこと、GPUメモリが連続していること(つまり。isContinuous()が真である)、他のGPUメモリのサブマトリックスではないGpuMatND(のサブマトリックスではない(つまり。isSubmatrix()は偽)。言い換えれば,このメソッドによって割り当てられたGPUメモリは常に連続的であり,別のサブ領域ではないことが保証されますGpuMatND.
void release ()
void swap (GpuMatND &m) noexcept
GpuMatND clone () const
配列および基礎データの完全なコピーを作成します。このメソッドは、配列の完全なコピーを作成します。の動作を模倣しています。Mat::clone()の動作を模倣しています.つまり,元のステップは考慮されません.そのため,配列のコピーは,次のように占有する連続した配列になります。total()*elemSize() バイトを占有します.
GpuMatND clone (Stream &stream) const
GpuMatND operator() (const std::vector< Range > &ranges) const
部分行列を抽出します。この演算子は,*thisの指定された部分配列の新しいヘッダを作成します。この演算子はO(1)の操作であり、つまり、行列データはコピーされません。[【詳解】(英語]
GpuMat createGpuMatHeader (IndexArray idx, Range rowRange, Range colRange) const
n次元行列の2次元平面部分のGpuMatヘッダを作成します.[【詳解】(英語]
GpuMat createGpuMatHeader () const
GpuMat operator() (IndexArray idx, Range rowRange, Range colRange) const
n次元の行列から2次元の平面部分を抽出します.これが createGpuMatHeader(IndexArray, Range, Range) と異なるのは,この行列の一部をGpuMatNDの一部をコピーして返されるGpuMat.[【詳解】(英語]
operator GpuMat () const
n-dim行列の2次元平面部分が実質的に2次元であれば,それを抽出します.GpuMatNDが実質的に2次元である場合,その2次元平面部分を抽出します.とは異なります。createGpuMatHeader()の一部分をクローン化するという点でGpuMatND.[【詳解】(英語]
GpuMatND (const GpuMatND &)=default
GpuMatND & operator= (const GpuMatND &)=default
GpuMatND (GpuMatND &&) noexcept=default
GpuMatND & operator= (GpuMatND &&) noexcept=default
void upload (InputArray src)
void upload (InputArray src, Stream &stream)
void download (OutputArray dst) const
void download (OutputArray dst, Stream &stream) const
bool isContinuous () const
bool isSubmatrix () const
行列が別の行列の部分行列である場合は,真を返します.
size_t elemSize () const
要素のサイズをバイトで返す
size_t elemSize1 () const
要素のチャンネルのサイズをバイトで返す
bool empty () const
data が NULL の場合は,真を返します.
bool external () const
空ではなく,外部の(ユーザが割り当てた) gpu メモリを指している場合は真を返します.
uchar * getDevicePtr () const
GPUメモリの最初のバイトへのポインタを返します.
size_t total () const
配列の総要素数を返す
size_t totalMemSize () const
基盤となるメモリのサイズ(バイト)を返す
int type () const
要素のタイプを返す

公開変数類

int flags
int dims
配列の次元
SizeArray size
この配列の形状
StepArray step

構築子と解体子

GpuMatND() [1/2]

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

これはオーバーロードされたメンバ関数です。利便性のために用意されています。元の関数との違いは引き数のみです。

引数
size n次元配列の形状を指定する整数の配列。
type 配列の種類.1-4 チャンネルの行列を作成する場合は CV_8UC1, ..., CV_16FC4 を利用し,マルチチャンネル(CV_CN_MAX チャンネルまで)の行列を作成する場合は CV_8UC(n), ..., CV_64FC(n) を利用します.

GpuMatND() [2/2]

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

これはオーバーロードされたメンバ関数です。利便性のために用意されています。元の関数との違いは引き数のみです。

引数
size n次元配列の形状を指定する整数の配列。
type 配列の種類.1-4 チャンネルの行列を作成する場合は CV_8UC1, ..., CV_16FC4 を利用し,マルチチャンネル(CV_CN_MAX チャンネルまで)の行列を作成する場合は CV_8UC(n), ..., CV_64FC(n) を利用します.
data ユーザデータへのポインタ.data と step パラメータを引数にとる行列コンストラクタは,行列データを確保しません.代わりに,指定されたデータを指し示す行列ヘッダを初期化するだけで,データのコピーは行われません.この操作は非常に効率的で,OpenCV の関数を用いて外部データを処理するのに利用できます.なお,外部データは自動的には解放されないので,注意が必要です.
step 多次元配列の場合は, _size.size()-1 ステップの配列(最後のステップは,常に要素サイズに設定されます).指定されない場合,行列は連続しているとみなされます.

関数詳解

clone()

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

これはオーバーロードされたメンバ関数です。利便性のために用意されています。元の関数との違いは引き数のみです。 このオーバーロードはノンブロッキングなので、コピー操作が終了していなくても返すことができます。

createGpuMatHeader() [1/2]

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

これはオーバーロードされたメンバ関数です。利便性のために用意されています。元の関数との違いは引き数です。 これはヘッダを作成します。GpuMatヘッダを作成します。GpuMatNDが事実上2Dである場合は、ヘッダを作成します。

覚え書き
返されたGpuMatは,ユーザが割り当てたデータのコンストラクタで構築されます。つまり,参照カウントは行いません。
この関数は、this の参照カウンタをインクリメントしません。GpuMatNDの参照カウンタをインクリメントしません。

createGpuMatHeader() [2/2]

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

n次元行列の2次元平面部分のGpuMatヘッダを作成します.

覚え書き
返されたGpuMatは,ユーザが割り当てたデータのコンストラクタで構築されます。つまり,参照カウントは行いません。
この関数は、this の参照カウンタをインクリメントしません。GpuMatNDの参照カウンタをインクリメントしません。

isContinuous()

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

は、データが連続している場合(すなわちGpuMatNDデータが連続している場合(すなわち、連続した行の間にギャップがない場合)、真を返す。

operator GpuMat()

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

n-dim行列の2次元平面部分が実質的に2次元であれば,それを抽出します.GpuMatNDが実質的に2次元である場合,その2次元平面部分を抽出します.とは異なります。createGpuMatHeader()の一部分をクローン化するという点でGpuMatND.

覚え書き
この演算子は,thisGpuMatNDの参照カウンタは増加しません。

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次元の行列から2次元の平面部分を抽出します.これが createGpuMatHeader(IndexArray, Range, Range) と異なるのは,この行列の一部をGpuMatNDの一部をコピーして返されるGpuMat.

覚え書き
この演算子は,thisGpuMatNDの参照カウンタは増加しません。

メンバ詳解

flags

int cv::cuda::GpuMatND::flags

いくつかのビットフィールドを含みます。

  • マジックサイン
  • 連続性フラグ
  • 深さ
  • チャンネルの数

step

StepArray cv::cuda::GpuMatND::step

の step と同じです.Mat.


このクラス詳解は次のファイルから抽出されました: