OpenCV 5.0.0
Open Source Computer Vision
読み込み中...
検索中...
見つかりません
🤖 AIによる機械翻訳(非公式) — これは OpenCV 5.0.0 公式リファレンス(英語)を AI (Claude) で自動翻訳したものです。訳に誤りを含む場合があります。正確な情報は 公式英語版(原文) を参照してください。
cv::ogl::Buffer クラス

参照カウント機能を備えた OpenGL バッファオブジェクト用のスマートポインタ。 続き...

#include <opencv2/core/opengl.hpp>

Collaboration diagram for cv::ogl::Buffer:

公開型

enum  Access {
  READ_ONLY = 0x88B8 ,
  WRITE_ONLY = 0x88B9 ,
  READ_WRITE = 0x88BA
}
 
enum  Target {
  ARRAY_BUFFER = 0x8892 ,
  ELEMENT_ARRAY_BUFFER = 0x8893 ,
  PIXEL_PACK_BUFFER = 0x88EB ,
  PIXEL_UNPACK_BUFFER = 0x88EC
}
 ターゲットは、バッファオブジェクトをどのように使用するつもりかを定義する。 続き...
 

公開メンバ関数

 Buffer ()
 コンストラクタ。
 
 Buffer (InputArray arr, Target target=ARRAY_BUFFER, bool autoRelease=false)
 
 Buffer (int arows, int acols, int atype, Target target=ARRAY_BUFFER, bool autoRelease=false)
 
 Buffer (int arows, int acols, int atype, unsigned int abufId, bool autoRelease=false)
 
 Buffer (Size asize, int atype, Target target=ARRAY_BUFFER, bool autoRelease=false)
 
 Buffer (Size asize, int atype, unsigned int abufId, bool autoRelease=false)
 
void bind (Target target) const
 OpenGL バッファを指定したバッファバインディングポイントにバインドする。
 
unsigned int bufId () const
 OpenGL オブジェクト ID を取得する
 
int channels () const
 
Buffer clone (Target target=ARRAY_BUFFER, bool autoRelease=false) const
 バッファオブジェクトとその基になるデータの完全なコピーを作成する。
 
int cols () const
 
void copyFrom (InputArray arr, cuda::Stream &stream, Target target=ARRAY_BUFFER, bool autoRelease=false)
 
void copyFrom (InputArray arr, Target target=ARRAY_BUFFER, bool autoRelease=false)
 ホスト/デバイスのメモリから OpenGL バッファへコピーする。
 
void copyTo (OutputArray arr) const
 OpenGL バッファからホスト/デバイスのメモリ、または別の OpenGL バッファオブジェクトへコピーする。
 
void copyTo (OutputArray arr, cuda::Stream &stream) const
 
void create (int arows, int acols, int atype, Target target=ARRAY_BUFFER, bool autoRelease=false)
 ogl::Buffer オブジェクト用のメモリを確保する。
 
void create (Size asize, int atype, Target target=ARRAY_BUFFER, bool autoRelease=false)
 
int depth () const
 
int elemSize () const
 
int elemSize1 () const
 
bool empty () const
 
cuda::GpuMat mapDevice ()
 デバイスメモリへマップする (ブロッキング)
 
cuda::GpuMat mapDevice (cuda::Stream &stream)
 OpenGL バッファを CUDA デバイスメモリへマップする。
 
Mat mapHost (Access access)
 OpenGL バッファをホストメモリへマップする。
 
void release ()
 参照カウンタをデクリメントし、必要であればバッファオブジェクトを破棄する。
 
int rows () const
 
void setAutoRelease (bool flag)
 自動解放モードを設定する。
 
Size size () const
 
int type () const
 
void unmapDevice ()
 
void unmapDevice (cuda::Stream &stream)
 OpenGL バッファのマップを解除する。
 
void unmapHost ()
 OpenGL バッファのマップを解除する。
 

静的公開メンバ関数

static void unbind (Target target)
 指定したバインディングポイントから任意のバッファをアンバインドする。
 

詳細説明

参照カウント機能を備えた OpenGL バッファオブジェクト用のスマートポインタ。

Buffer オブジェクトは、OpenGL コンテキストが確保した未整形メモリの配列を格納する OpenGL オブジェクトである。これらは頂点データ、画像やフレームバッファから取得したピクセルデータ、その他さまざまなものの格納に使用できる。

ogl::BufferMat と類似したインターフェースを持ち、2次元配列のメモリを表す。

ogl::Buffer はホストとデバイス間のメモリ転送をサポートし、CUDA メモリへマップすることもできる。

列挙型メンバ詳解

◆ Access

列挙値
READ_ONLY 
WRITE_ONLY 
READ_WRITE 

◆ Target

ターゲットは、バッファオブジェクトをどのように使用するつもりかを定義する。

列挙値
ARRAY_BUFFER 

このバッファは頂点データのソースとして使用される。

ELEMENT_ARRAY_BUFFER 

このバッファはインデックス用 (例えば glDrawElements 内) に使用される。

PIXEL_PACK_BUFFER 

このバッファは OpenGL テクスチャからの読み出しに使用される。

PIXEL_UNPACK_BUFFER 

このバッファは OpenGL テクスチャへの書き込みに使用される。

構築子と解体子の詳解

◆ Buffer() [1/6]

cv::ogl::Buffer::Buffer ( )

コンストラクタ。

空の ogl::Buffer オブジェクトを作成する、既存のバッファ ( abufId 引数) から ogl::Buffer オブジェクトを作成する、ogl::Buffer オブジェクト用のメモリを確保する、またはホスト/デバイスのメモリからコピーする。

◆ Buffer() [2/6]

cv::ogl::Buffer::Buffer ( int arows,
int acols,
int atype,
unsigned int abufId,
bool autoRelease = false )

これは利便性のために提供されているオーバーロードされたメンバ関数である。上記の関数とは、受け取る引数のみが異なる。

引数
arows2次元配列の行数。
acols2次元配列の列数。
atype配列の型 ( CV_8UC1, ..., CV_64FC4 )。詳細はMat を参照。
abufIdBuffer オブジェクト名。
autoRelease自動解放モード (true の場合、オブジェクトのデストラクタで release が呼ばれる)。

◆ Buffer() [3/6]

cv::ogl::Buffer::Buffer ( Size asize,
int atype,
unsigned int abufId,
bool autoRelease = false )

これは利便性のために提供されているオーバーロードされたメンバ関数である。上記の関数とは、受け取る引数のみが異なる。

引数
asize2次元配列のサイズ。
atype配列の型 ( CV_8UC1, ..., CV_64FC4 )。詳細はMat を参照。
abufIdBuffer オブジェクト名。
autoRelease自動解放モード (true の場合、オブジェクトのデストラクタで release が呼ばれる)。

◆ Buffer() [4/6]

cv::ogl::Buffer::Buffer ( int arows,
int acols,
int atype,
Target target = ARRAY_BUFFER,
bool autoRelease = false )

これは利便性のために提供されているオーバーロードされたメンバ関数である。上記の関数とは、受け取る引数のみが異なる。

引数
arows2次元配列の行数。
acols2次元配列の列数。
atype配列の型 ( CV_8UC1, ..., CV_64FC4 )。詳細はMat を参照。
targetBuffer の用途。cv::ogl::Buffer::Target を参照。
autoRelease自動解放モード (true の場合、オブジェクトのデストラクタで release が呼ばれる)。

◆ Buffer() [5/6]

cv::ogl::Buffer::Buffer ( Size asize,
int atype,
Target target = ARRAY_BUFFER,
bool autoRelease = false )

これは利便性のために提供されているオーバーロードされたメンバ関数である。上記の関数とは、受け取る引数のみが異なる。

引数
asize2次元配列のサイズ。
atype配列の型 ( CV_8UC1, ..., CV_64FC4 )。詳細はMat を参照。
targetBuffer の用途。cv::ogl::Buffer::Target を参照。
autoRelease自動解放モード (true の場合、オブジェクトのデストラクタで release が呼ばれる)。

◆ Buffer() [6/6]

cv::ogl::Buffer::Buffer ( InputArray arr,
Target target = ARRAY_BUFFER,
bool autoRelease = false )
explicit

これは利便性のために提供されているオーバーロードされたメンバ関数である。上記の関数とは、受け取る引数のみが異なる。

引数
arr入力配列(ホストまたはデバイスメモリ。Matcuda::GpuMat または std::vector でありうる)。
targetBuffer の用途。cv::ogl::Buffer::Target を参照。
autoRelease自動解放モード (true の場合、オブジェクトのデストラクタで release が呼ばれる)。

メンバ関数詳解

◆ bind()

void cv::ogl::Buffer::bind ( Target target) const

OpenGL バッファを指定したバッファバインディングポイントにバインドする。

引数
targetバインディングポイント。cv::ogl::Buffer::Target を参照。

◆ bufId()

unsigned int cv::ogl::Buffer::bufId ( ) const

OpenGL オブジェクト ID を取得する

◆ channels()

int cv::ogl::Buffer::channels ( ) const

◆ clone()

Buffer cv::ogl::Buffer::clone ( Target target = ARRAY_BUFFER,
bool autoRelease = false ) const

バッファオブジェクトとその基になるデータの完全なコピーを作成する。

引数
targetコピー先バッファに対する Buffer の用途。
autoReleaseコピー先バッファの自動解放モード。

◆ cols()

int cv::ogl::Buffer::cols ( ) const

◆ copyFrom() [1/2]

void cv::ogl::Buffer::copyFrom ( InputArray arr,
cuda::Stream & stream,
Target target = ARRAY_BUFFER,
bool autoRelease = false )

これは利便性のために提供されているオーバーロードされたメンバ関数である。上記の関数とは、受け取る引数のみが異なる。

◆ copyFrom() [2/2]

void cv::ogl::Buffer::copyFrom ( InputArray arr,
Target target = ARRAY_BUFFER,
bool autoRelease = false )

ホスト/デバイスのメモリから OpenGL バッファへコピーする。

引数
arr入力配列(ホストまたはデバイスメモリ。Matcuda::GpuMat または std::vector でありうる)。
targetBuffer の用途。cv::ogl::Buffer::Target を参照。
autoRelease自動解放モード (true の場合、オブジェクトのデストラクタで release が呼ばれる)。

◆ copyTo() [1/2]

void cv::ogl::Buffer::copyTo ( OutputArray arr) const

OpenGL バッファからホスト/デバイスのメモリ、または別の OpenGL バッファオブジェクトへコピーする。

引数
arr出力配列(ホストまたはデバイスメモリ。Matcuda::GpuMat 、std::vector または ogl::Buffer でありうる)。

◆ copyTo() [2/2]

void cv::ogl::Buffer::copyTo ( OutputArray arr,
cuda::Stream & stream ) const

これは利便性のために提供されているオーバーロードされたメンバ関数である。上記の関数とは、受け取る引数のみが異なる。

◆ create() [1/2]

void cv::ogl::Buffer::create ( int arows,
int acols,
int atype,
Target target = ARRAY_BUFFER,
bool autoRelease = false )

ogl::Buffer オブジェクト用のメモリを確保する。

引数
arows2次元配列の行数。
acols2次元配列の列数。
atype配列の型 ( CV_8UC1, ..., CV_64FC4 )。詳細はMat を参照。
targetBuffer の用途。cv::ogl::Buffer::Target を参照。
autoRelease自動解放モード (true の場合、オブジェクトのデストラクタで release が呼ばれる)。

◆ create() [2/2]

void cv::ogl::Buffer::create ( Size asize,
int atype,
Target target = ARRAY_BUFFER,
bool autoRelease = false )

これは利便性のために提供されているオーバーロードされたメンバ関数である。上記の関数とは、受け取る引数のみが異なる。

引数
asize2次元配列のサイズ。
atype配列の型 ( CV_8UC1, ..., CV_64FC4 )。詳細はMat を参照。
targetBuffer の用途。cv::ogl::Buffer::Target を参照。
autoRelease自動解放モード (true の場合、オブジェクトのデストラクタで release が呼ばれる)。

◆ depth()

int cv::ogl::Buffer::depth ( ) const

◆ elemSize()

int cv::ogl::Buffer::elemSize ( ) const

◆ elemSize1()

int cv::ogl::Buffer::elemSize1 ( ) const

◆ empty()

bool cv::ogl::Buffer::empty ( ) const

◆ mapDevice() [1/2]

cuda::GpuMat cv::ogl::Buffer::mapDevice ( )

デバイスメモリへマップする (ブロッキング)

◆ mapDevice() [2/2]

cuda::GpuMat cv::ogl::Buffer::mapDevice ( cuda::Stream & stream)

OpenGL バッファを CUDA デバイスメモリへマップする。

この操作はデータをコピーしない。複数のバッファオブジェクトを同時に CUDA メモリへマップできる。

マップされたデータストアは、そのバッファオブジェクトを使用する前に ogl::Buffer::unmapDevice でマップを解除しなければならない。

◆ mapHost()

Mat cv::ogl::Buffer::mapHost ( Access access)

OpenGL バッファをホストメモリへマップする。

mapHost はバッファオブジェクトのデータストア全体をクライアントのアドレス空間へマップする。その後、指定したアクセスポリシーに応じて、返されたポインタを基準にデータを直接読み出し、または書き込みできる。

マップされたデータストアは、そのバッファオブジェクトを使用する前に ogl::Buffer::unmapHost でマップを解除しなければならない。

この操作はホストとデバイス間のメモリ転送を引き起こす可能性がある。

一度にマップできるバッファオブジェクトは1つだけである。

引数
accessアクセスポリシー。バッファオブジェクトのマップされたデータストアに対して読み出しが可能か、書き込みが可能か、あるいはその両方が可能かを指定する。シンボル定数は ogl::Buffer::READ_ONLYogl::Buffer::WRITE_ONLY または ogl::Buffer::READ_WRITE のいずれかでなければならない。

◆ release()

void cv::ogl::Buffer::release ( )

参照カウンタをデクリメントし、必要であればバッファオブジェクトを破棄する。

この関数は setAutoRelease(true) を呼び出す。

◆ rows()

int cv::ogl::Buffer::rows ( ) const

◆ setAutoRelease()

void cv::ogl::Buffer::setAutoRelease ( bool flag)

自動解放モードを設定する。

OpenGL オブジェクトの寿命はコンテキストの寿命に結びついている。OpenGL コンテキストがウィンドウにバインドされている場合、いつでも解放され得る (ユーザーがウィンドウを閉じる可能性がある)。コンテキストの破棄後にオブジェクトのデストラクタが呼ばれると、エラーを引き起こす。そのため ogl::Buffer はデフォルトではデストラクタで OpenGL オブジェクトを破棄しない (すべての OpenGL リソースは OpenGL コンテキストとともに解放される)。この関数は ogl::Buffer のデストラクタに OpenGL オブジェクトを強制的に破棄させることができる。

引数
flag自動解放モード (true の場合、オブジェクトのデストラクタで release が呼ばれる)。

◆ size()

Size cv::ogl::Buffer::size ( ) const

◆ type()

int cv::ogl::Buffer::type ( ) const

◆ unbind()

static void cv::ogl::Buffer::unbind ( Target target)
static

指定したバインディングポイントから任意のバッファをアンバインドする。

引数
targetバインディングポイント。cv::ogl::Buffer::Target を参照。

◆ unmapDevice() [1/2]

void cv::ogl::Buffer::unmapDevice ( )

◆ unmapDevice() [2/2]

void cv::ogl::Buffer::unmapDevice ( cuda::Stream & stream)

OpenGL バッファのマップを解除する。

◆ unmapHost()

void cv::ogl::Buffer::unmapHost ( )

OpenGL バッファのマップを解除する。


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