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

自動的に確保されるバッファクラス。 続きを見る...

#include <opencv2/core/utility.hpp>

Collaboration diagram for cv::AutoBuffer< _Tp, fixed_size >:

公開型

typedef _Tp value_type
 

公開メンバ関数

 AutoBuffer ()
 デフォルトコンストラクタ
 
 AutoBuffer (const AutoBuffer< _Tp, fixed_size > &buf)
 コピーコンストラクタ
 
 AutoBuffer (size_t _size)
 実際のバッファサイズを受け取るコンストラクタ
 
 ~AutoBuffer ()
 デストラクタ。 deallocate() を呼び出す
 
void allocate (size_t _size)
 サイズ_sizeの新しいバッファを確保する。_sizeが十分に小さい場合は、スタック確保されたバッファを使用する
 
_Tpdata ()
 実際のバッファ (スタック確保またはヒープ確保) へのポインタを返す
 
const _Tpdata () const
 実際のバッファ (スタック確保またはヒープ確保) への読み取り専用ポインタを返す
 
void deallocate ()
 バッファが動的に確保されていた場合は解放する
 
 operator _Tp * ()
 実際のバッファ (スタック確保またはヒープ確保) へのポインタを返す
 
 operator const _Tp * () const
 実際のバッファ (スタック確保またはヒープ確保) への読み取り専用ポインタを返す
 
AutoBuffer< _Tp, fixed_size > & operator= (const AutoBuffer< _Tp, fixed_size > &buf)
 代入演算子
 
void resize (size_t _size)
 バッファをリサイズし、内容を保持する
 
size_t size () const
 現在のバッファサイズを返す
 

限定公開変数類

_Tp buf [(fixed_size > 0) ? fixed_size :1]
 事前に確保されたバッファ。C++標準の要件を満たすため少なくとも1要素を持つ
 
_Tpptr
 実際のバッファへのポインタ。バッファが十分に小さい場合はbufを指すことがある
 
size_t sz
 実際のバッファのサイズ
 

詳細説明

template<typename _Tp, size_t fixed_size = 1024/sizeof(_Tp)+8>
class cv::AutoBuffer< _Tp, fixed_size >

自動的に確保されるバッファクラス。

このクラスは関数やメソッド内の一時バッファに使用される。一時バッファは通常小さい (数Kバイト程度のメモリ) が、そのサイズが引数に依存する場合、スタック上に小さな固定サイズの配列を作成し、それが十分大きければそれを使用するのが理にかなっている。必要なバッファサイズが固定サイズより大きい場合は、十分なサイズの別バッファを動的に確保し、処理後に解放する。したがって、バッファサイズが小さい典型的なケースでは、malloc()/free() に伴うオーバーヘッドが発生しない。同時に、処理するデータのサイズに制限はない。

これが AutoBuffer の行うことである。テンプレートは2つのパラメータ、すなわちバッファ要素の型とスタック確保される要素数を受け取る。このクラスの使い方を以下に示す:

void my_func(const cv::Mat& m)
{
cv::AutoBuffer<float> buf(1000); // create automatic buffer containing 1000 floats
buf.allocate(m.rows); // if m.rows <= 1000, the pre-allocated buffer is used,
// otherwise the buffer of "m.rows" floats will be allocated
// dynamically and deallocated in cv::AutoBuffer destructor
...
}
Automatically Allocated Buffer Class.
Definition utility.hpp:102
_Tp buf[(fixed_size > 0) ? fixed_size :1]
pre-allocated buffer. At least 1 element to confirm C++ standard requirements
Definition utility.hpp:150
n-dimensional dense array class
Definition mat.hpp:840
int rows
the number of rows and columns or (-1, -1) when the matrix has more than 2 dimensions
Definition mat.hpp:2204

型定義メンバ詳解

◆ value_type

template<typename _Tp , size_t fixed_size = 1024/sizeof(_Tp)+8>
_Tp cv::AutoBuffer< _Tp, fixed_size >::value_type

構築子と解体子の詳解

◆ AutoBuffer() [1/3]

template<typename _Tp , size_t fixed_size = 1024/sizeof(_Tp)+8>
cv::AutoBuffer< _Tp, fixed_size >::AutoBuffer ( )

デフォルトコンストラクタ

◆ AutoBuffer() [2/3]

template<typename _Tp , size_t fixed_size = 1024/sizeof(_Tp)+8>
cv::AutoBuffer< _Tp, fixed_size >::AutoBuffer ( size_t _size)
explicit

実際のバッファサイズを受け取るコンストラクタ

◆ AutoBuffer() [3/3]

template<typename _Tp , size_t fixed_size = 1024/sizeof(_Tp)+8>
cv::AutoBuffer< _Tp, fixed_size >::AutoBuffer ( const AutoBuffer< _Tp, fixed_size > & buf)

コピーコンストラクタ

◆ ~AutoBuffer()

template<typename _Tp , size_t fixed_size = 1024/sizeof(_Tp)+8>
cv::AutoBuffer< _Tp, fixed_size >::~AutoBuffer ( )

デストラクタ。 deallocate() を呼び出す

メンバ関数詳解

◆ allocate()

template<typename _Tp , size_t fixed_size = 1024/sizeof(_Tp)+8>
void cv::AutoBuffer< _Tp, fixed_size >::allocate ( size_t _size)

サイズ_sizeの新しいバッファを確保する。_sizeが十分に小さい場合は、スタック確保されたバッファを使用する

◆ data() [1/2]

template<typename _Tp , size_t fixed_size = 1024/sizeof(_Tp)+8>
_Tp * cv::AutoBuffer< _Tp, fixed_size >::data ( )
inline

実際のバッファ (スタック確保またはヒープ確保) へのポインタを返す

◆ data() [2/2]

template<typename _Tp , size_t fixed_size = 1024/sizeof(_Tp)+8>
const _Tp * cv::AutoBuffer< _Tp, fixed_size >::data ( ) const
inline

実際のバッファ (スタック確保またはヒープ確保) への読み取り専用ポインタを返す

◆ deallocate()

template<typename _Tp , size_t fixed_size = 1024/sizeof(_Tp)+8>
void cv::AutoBuffer< _Tp, fixed_size >::deallocate ( )

バッファが動的に確保されていた場合は解放する

◆ operator _Tp *()

template<typename _Tp , size_t fixed_size = 1024/sizeof(_Tp)+8>
cv::AutoBuffer< _Tp, fixed_size >::operator _Tp * ( )
inline

実際のバッファ (スタック確保またはヒープ確保) へのポインタを返す

◆ operator const _Tp *()

template<typename _Tp , size_t fixed_size = 1024/sizeof(_Tp)+8>
cv::AutoBuffer< _Tp, fixed_size >::operator const _Tp * ( ) const
inline

実際のバッファ (スタック確保またはヒープ確保) への読み取り専用ポインタを返す

◆ operator=()

template<typename _Tp , size_t fixed_size = 1024/sizeof(_Tp)+8>
AutoBuffer< _Tp, fixed_size > & cv::AutoBuffer< _Tp, fixed_size >::operator= ( const AutoBuffer< _Tp, fixed_size > & buf)

代入演算子

◆ resize()

template<typename _Tp , size_t fixed_size = 1024/sizeof(_Tp)+8>
void cv::AutoBuffer< _Tp, fixed_size >::resize ( size_t _size)

バッファをリサイズし、内容を保持する

◆ size()

template<typename _Tp , size_t fixed_size = 1024/sizeof(_Tp)+8>
size_t cv::AutoBuffer< _Tp, fixed_size >::size ( ) const

現在のバッファサイズを返す

メンバ変数詳解

◆ buf

template<typename _Tp , size_t fixed_size = 1024/sizeof(_Tp)+8>
_Tp cv::AutoBuffer< _Tp, fixed_size >::buf[(fixed_size > 0) ? fixed_size :1]
protected

事前に確保されたバッファ。C++標準の要件を満たすため少なくとも1要素を持つ

◆ ptr

template<typename _Tp , size_t fixed_size = 1024/sizeof(_Tp)+8>
_Tp* cv::AutoBuffer< _Tp, fixed_size >::ptr
protected

実際のバッファへのポインタ。バッファが十分に小さい場合はbufを指すことがある

◆ sz

template<typename _Tp , size_t fixed_size = 1024/sizeof(_Tp)+8>
size_t cv::AutoBuffer< _Tp, fixed_size >::sz
protected

実際のバッファのサイズ


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