OpenCV 4.5.3(日本語機械翻訳)
クラス | 公開メンバ関数 | 静的公開メンバ関数 | 公開変数類 | 全メンバ一覧

Base storage class for GPU memory with reference counting. [詳解]

#include <cuda.hpp>

クラス

class Allocator

公開メンバ関数

CV_WRAP GpuMat (GpuMat::Allocator *allocator=GpuMat::defaultAllocator())
デフォルトコンストラクタ
CV_WRAP GpuMat (int rows, int cols, int type, GpuMat::Allocator *allocator=GpuMat::defaultAllocator())
コンストラクタGpuMat指定されたサイズと型の
CV_WRAP GpuMat (Size size, int type, GpuMat::Allocator *allocator=GpuMat::defaultAllocator())
CV_WRAP GpuMat (int rows, int cols, int type, Scalar s, GpuMat::Allocator *allocator=GpuMat::defaultAllocator())
コンストラクタGpuMatを構築し、その中に指定された値_sを入れます。
CV_WRAP GpuMat (Size size, int type, Scalar s, GpuMat::Allocator *allocator=GpuMat::defaultAllocator())
CV_WRAP GpuMat (const GpuMat &m)
コピーコンストラクタ
GpuMat (int rows, int cols, int type, void *data, size_t step=Mat::AUTO_STEP)
のコンストラクタです。GpuMatユーザーが割り当てたデータを指すヘッダ
GpuMat (Size size, int type, void *data, size_t step=Mat::AUTO_STEP)
CV_WRAP GpuMat (const GpuMat &m, Range rowRange, Range colRange)
大きな行列の一部のGpuMat大きな行列の一部を示すヘッダを作成します.
CV_WRAP GpuMat (const GpuMat &m, Rect roi)
CV_WRAP GpuMat (InputArray arr, GpuMat::Allocator *allocator=GpuMat::defaultAllocator())
ビルドGpuMatホストメモリから構築する(ブロッキングコール).
~GpuMat ()
デストラクタ - 呼び出しrelease()
GpuMat & operator= (const GpuMat &m)
代入演算子
CV_WRAP void create (int rows, int cols, int type)
新しいデータを割り当てます。GpuMatデータを割り当てます。GpuMat指定されたサイズとタイプがない限り、新しいデータを割り当てます。
CV_WRAP void create (Size size, int type)
void release ()
参照カウンタを減少させ,参照カウンタが0になったらデータを解放する
CV_WRAP void swap (GpuMat &mat)
他のスマートポインタと交換する
CV_WRAP void upload (InputArray arr)
にデータをアップロードします。GpuMat(ブロッキングコール)[【詳解】(英語]
CV_WRAP void upload (InputArray arr, Stream &stream)
にデータをアップロードします。GpuMat(ノンブロッキングコール)[【詳解】(英語]
CV_WRAP void download (OutputArray dst) const
からのデータダウンロードを実行GpuMat(ブロッキングコール)[【詳解】(英語]
CV_WRAP void download (OutputArray dst, Stream &stream) const
からのデータダウンロードを実行GpuMat(ノンブロッキングコール)[【詳解】(英語]
CV_WRAP GpuMat clone () const
のディープコピーを返します。GpuMatのディープコピーを返す、つまり、データがコピーされる
CV_WRAP void copyTo (OutputArray dst) const
をコピーします。GpuMatの内容をデバイス・メモリにコピーする (ブロッキング・コール)
CV_WRAP void copyTo (OutputArray dst, Stream &stream) const
をコピーします。GpuMatの内容をデバイスメモリにコピーする(非ブロック化呼び出し)。
CV_WRAP void copyTo (OutputArray dst, InputArray mask) const
コピーされるのはGpuMat非ゼロのマスク要素でマークされた要素を "m "にコピーする(ブロッキング・コール)
CV_WRAP void copyTo (OutputArray dst, InputArray mask, Stream &stream) const
コピーされるのはGpuMat非ゼロのマスク要素でマークされた要素を "m "にコピーする (非ブロッキング・コール)
CV_WRAP GpuMat & setTo (Scalar s)
要素の一部をGpuMat要素をsに設定する(ブロッキングコール)
CV_WRAP GpuMat & setTo (Scalar s, Stream &stream)
要素の一部をGpuMat要素をsに設定する(非ブロッキングコール)
CV_WRAP GpuMat & setTo (Scalar s, InputArray mask)
要素の一部をGpuMatマスクに応じて,要素をsに設定する(ブロッキング・コール)
CV_WRAP GpuMat & setTo (Scalar s, InputArray mask, Stream &stream)
要素の一部をGpuMatマスクに応じて要素をsに設定する(非ブロッキングコール)
CV_WRAP void convertTo (OutputArray dst, int rtype) const
に変換します。GpuMat別のデータ型に変換する(ブロッキングコール)
CV_WRAP void convertTo (OutputArray dst, int rtype, Stream &stream) const
に変換します。GpuMat他のデータ型への変換(非ブロッキングコール)
CV_WRAP void convertTo (OutputArray dst, int rtype, double alpha, double beta=0.0) const
に変換します。GpuMatスケーリングされた別のデータ型に変換する (ブロッキングコール)
CV_WRAP void convertTo (OutputArray dst, int rtype, double alpha, Stream &stream) const
に変換します。GpuMatスケーリングされた別のデータ型への変換(非ブロッキング・コール)
CV_WRAP void convertTo (OutputArray dst, int rtype, double alpha, double beta, Stream &stream) const
に変換します。GpuMatスケーリングされた別のデータ型への変換(非ブロッキング・コール)
CV_WRAP void assignTo (GpuMat &m, int type=-1) const
uchar * ptr (int y=0)
y番目の行へのポインタを返す
const uchar * ptr (int y=0) const
template<typename _Tp >
_Tp * ptr (int y=0)
上記メソッドのテンプレート版
template<typename _Tp >
const _Tp * ptr (int y=0) const
template<typename _Tp >
operator PtrStepSz< _Tp > () const
template<typename _Tp >
operator PtrStep< _Tp > () const
CV_WRAP GpuMat row (int y) const
指定された行の新しいGpuMat指定された行のヘッダ
CV_WRAP GpuMat col (int x) const
指定された行の新しいGpuMat指定された列のヘッダ
CV_WRAP GpuMat rowRange (int startrow, int endrow) const
指定された行スパンでの
CV_WRAP GpuMat rowRange (Range r) const
CV_WRAP GpuMat colRange (int startcol, int endcol) const
... 指定された列の範囲
CV_WRAP GpuMat colRange (Range r) const
GpuMat operator() (Range rowRange, Range colRange) const
矩形のサブ GpuMat を抽出します(これは, row や rowRange などを一般化したものです).
GpuMat operator() (Rect roi) const
CV_WRAP GpuMat reshape (int cn, int rows=0) const
CV_WRAP void locateROI (Size &wholeSize, Point &ofs) const
位置決めGpuMat親の中でのヘッダの位置GpuMat
CV_WRAP GpuMat & adjustROI (int dtop, int dbottom, int dleft, int dright)
現在のGpuMat親の中の現在の ROI を移動/リサイズします.GpuMat
CV_WRAP bool isContinuous () const
CV_WRAP size_t elemSize () const
要素のサイズをバイトで返す
CV_WRAP size_t elemSize1 () const
要素のチャンネルのサイズをバイトで返す
CV_WRAP int type () const
要素のタイプを返す
CV_WRAP int depth () const
要素のタイプを返す
CV_WRAP int channels () const
チャンネルの数を返す
CV_WRAP size_t step1 () const
step/elemSize1()を返す
CV_WRAP Size size () const
戻り値GpuMatサイズ:幅=列数,高さ=行数
CV_WRAP bool empty () const
以下の場合は真を返します。GpuMatデータがNULL
CV_WRAP void * cudaPtr () const
CV_WRAP void updateContinuityFlag ()
内部使用法:継続性フラグを更新

静的公開メンバ関数

static CV_WRAP GpuMat::Allocator * defaultAllocator ()
デフォルトのアロケータ
static CV_WRAP void setDefaultAllocator (GpuMat::Allocator *allocator)

公開変数類

int flags
int rows
行数と列数
int cols
CV_PROP size_t step
連続する行の間の距離をバイト単位で表したもの.
uchar * data
データへのポインタ
int * refcount
uchar * datastart
locateROIおよびadjustROIで使用されるヘルパーフィールド
const uchar * dataend
Allocator * allocator
アロケータ

詳解

参照カウントを行うGPUメモリのベースストレージクラスです.

そのインターフェースはMatインターフェースは、次のような制限があります。

後者の制限により、オーバーロードされた行列演算子がメモリの割り当てを引き起こす可能性があることに注意してください。クラスはGpuMatクラスは、cuda::PtrStepSzおよびcuda::PtrStepに変換可能なので、カーネルに直接渡すことができます。

覚え書き
とは対照的にMatとは対照的に、ほとんどの場合はGpuMat::isContinuous()は == false です。これは、行がハードウェアに応じたサイズにアラインされることを意味します。単一行GpuMatは常に連続した行列であることを意味します.
スタティック変数やグローバル変数を割り当てたままにしておくことはお勧めできません。GpuMat変数を割り当てたままにしておくこと、つまりデストラクタに依存することは推奨されません。このような変数と CUDA コンテキストの破壊順序は不定です。GPU メモリ解放関数は、CUDA コンテキストが以前に破壊されている場合、エラーを返します。

メンバー関数の中には、「ブロッキングコール」と呼ばれるものと、「ノンブロッキングコール」と呼ばれるものがあります。ブロッキングコールは、ホストと同期しています。関数が戻ってきたときには、GPUの動作が終了していることが保証されます。一方、ノンブロッキングコールはホストと非同期です。ノンブロッキング関数はホストに対して非同期なので、GPU操作が終了していなくても関数が戻ってくる可能性があります。

ブロッキング関数と比較して、ノンブロッキング関数は追加の引数としてStreamを追加の引数として受け入れます。デフォルト以外のストリームが渡された場合、GPU 操作が他のストリームの操作と重なる可能性があります。

参照
Mat

関数詳解

download() [1/2]

CV_WRAP void cv::cuda::GpuMat::download ( OutputArray dst ) const

からのデータダウンロードを実行GpuMat(ブロッキングコール)

デバイス・メモリからホスト・メモリへのデータのコピーを行います。ブロッキングコールなので、この関数が戻ってきたときにはコピー操作が終了していることが保証されています。

download() [2/2]

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

からのデータダウンロードを実行GpuMat(ノンブロッキングコール)

デバイス・メモリからホスト・メモリへのデータのコピーを行います。ノンブロッキングコールのため、コピー動作が終了していなくても戻ることがあります。

がデフォルト・ストリームでない場合、コピー操作は他のデフォルト・ストリームの操作と重なることがあります。streamがデフォルトストリームではなく、かつdstHostMemHostMem::PAGE_LOCKED オプションで割り当てられている場合、コピー操作は他のデフォルトでないストリームでの操作と重なる可能性があります。

isContinuous()

CV_WRAP bool cv::cuda::GpuMat::isContinuous ( ) const

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

reshape()

CV_WRAP GpuMat cv::cuda::GpuMat::reshape ( int cn,
int rows = 0
) const

は、同じデータに対して、異なる内容の代替GpuMat同じデータに対して、チャンネル数や行数を変えた別のヘッダーを作成する。

upload() [1/2]

CV_WRAP void cv::cuda::GpuMat::upload ( InputArray arr )

にデータをアップロードします。GpuMat(ブロッキングコール)

この関数は、ホストメモリからデバイスメモリにデータをコピーします。ブロッキングコールなので、この関数が戻ってきたときにはコピー操作が終了していることが保証されています。

upload() [2/2]

CV_WRAP void cv::cuda::GpuMat::upload ( InputArray arr,
Stream & stream
)

にデータをアップロードします。GpuMat(ノンブロッキングコール)

ホストメモリからデバイスメモリへのデータコピーを行う。ノンブロッキングコールであるため、コピー操作が終了していなくてもこの関数が戻ることがあります。

がデフォルト・ストリームでない場合、コピー操作は他のデフォルト・ストリームの操作と重なることがあります。streamがデフォルトストリームではなく、かつdstHostMemHostMem::PAGE_LOCKED オプションで割り当てられている場合、コピー操作は他のデフォルトでないストリームでの操作と重なる可能性があります。

メンバ詳解

flags

int cv::cuda::GpuMat::flags

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

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

refcount

int* cv::cuda::GpuMat::refcount

参照カウンタへのポインタ.GpuMatがユーザに割り当てられたデータを指している場合,ポインタはNULLとなります.


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