OpenCV 4.5.3(日本語機械翻訳)
型定義 | 関数 | 変数
C API for video I/O

型定義

typedef struct CvCapture CvCapture
"black box" capture structure [【詳解】(英語]
typedef struct CvVideoWriter CvVideoWriter
"black box" video file writer structure [【詳解】(英語]

関数

CVAPI (CvCapture *) cvCreateFileCapture(const char *filename)
ビデオファイルからのフレームのキャプチャ開始[【詳解】(英語]
CVAPI (int) cvGrabFrame(CvCapture *capture)
フレームを取得し,成功したら1を,失敗したら0を返します.[【詳解】(英語]
CVAPI (IplImage *) cvRetrieveFrame(CvCapture *capture
cvGrabFrame(...)で取得したフレームを取得します.[【詳解】(英語]
int streamIdx CV_DEFAULT (0))
CVAPI (void) cvReleaseCapture(CvCapture **capture)
キャプチャ/読み込みの停止とリソースの解放[【詳解】(英語]
CVAPI (double) cvGetCaptureProperty(CvCapture *capture
キャプチャのプロパティを取得します.
CVAPI (CvVideoWriter *) cvCreateVideoWriter(const char *filename
ビデオファイルライタを初期化します.
int double CvSize int is_color CV_DEFAULT (1))

変数

int apiPreference
int property_id
int double value
int fourcc
int double fps
int double CvSize frame_size
const IplImage * image

Obsolete functions/synonyms

#define cvCaptureFromCAM   cvCreateCameraCapture
#define cvCaptureFromFile   cvCreateFileCapture
#define cvCaptureFromAVIcvCaptureFromFile
#define cvCreateAVIWriter   cvCreateVideoWriter
#define cvWriteToAVI   cvWriteFrame

詳解

マクロ定義詳解

cvCaptureFromAVI

#define cvCaptureFromAVIcvCaptureFromFile
非推奨:
代わりに cvCreateFileCapture() を利用します.

cvCaptureFromCAM

#define cvCaptureFromCAM   cvCreateCameraCapture
非推奨:
代わりに cvCreateCameraCapture() を利用してください.

cvCaptureFromFile

#define cvCaptureFromFile   cvCreateFileCapture
非推奨:
代わりに cvCreateFileCapture() を利用します.

cvCreateAVIWriter

#define cvCreateAVIWriter   cvCreateVideoWriter
非推奨:
代わりに cvCreateVideoWriter() を利用します.

cvWriteToAVI

#define cvWriteToAVI   cvWriteFrame
非推奨:
代わりに cvWriteFrame() を利用します.

型定義詳解

CvCapture

typedef struct CvCapture CvCapture

"black box" capture structure

C++ではcv::VideoCapture

CvVideoWriter

typedef struct CvVideoWriter CvVideoWriter

"black box" video file writer structure

C++ではcv::VideoWriter

関数詳解

CVAPI() [1/4]

CVAPI ( CvCapture * ) const

ビデオファイルからのフレームのキャプチャ開始

カメラからのフレームのキャプチャを開始する: index = camera_index + domain_offset (CV_CAP_*)

ビデオファイルからフレームのキャプチャを開始します.

CVAPI() [2/4]

CVAPI ( int )

フレームを取得し,成功したら1を,失敗したら0を返します.

フレームをビデオファイルに書き込む

キャプチャラーの種類を返す(例: ::CV_CAP_VFW, ::CV_CAP_UNICAP).

キャプチャーのプロパティを設定します.

この関数は,高速だと思われます.

これは, ::CV_CAP_ANY で作成された場合は不明です.

CVAPI() [3/4]

CVAPI ( IplImage * )

cvGrabFrame(...)で取得したフレームを取得します.

cvGrabFrame と cvRetrieveFrame の組み合わせに過ぎません.

この関数は,フレームの解凍や反転などのフレーム処理を行う場合があります.

警告
!!!取得したフレームを解放したり変更したりしないでください!!!
!!!取得したフレームを解放したり変更したりしないでください!!!

CVAPI() [4/4]

CVAPI ( void )

キャプチャ/読み込みの停止とリソースの解放

ビデオファイルライターを閉じる

キャプチャ/読み込みの停止とリソースの解放

ビデオファイルライターを閉じる

輪郭線や塗りつぶした内部を画像上に描画する

テキストストロークのバウンディングボックスを計算する(位置合わせに便利)

指定された位置に,指定されたフォントと色のテキストストロークを描画します.CvFontcvInitFont で初期化されなければいけません.

フォント構造を初期化します(OpenCV 1.x API).

1つあるいは複数の多角形の曲線を描画します.

1つまたは複数の任意の多角形で囲まれた領域を塗りつぶします.

凸状または単調な多角形を埋めます.

楕円のアウトライン、塗りつぶし楕円、楕円弧、塗りつぶし楕円セクタの描画

中心と半径を指定して円を描画する機能

引数で指定された矩形を描画します。CvRect構造体

矩形の対向する2つの角(pt1 & pt2)を指定して矩形を描画します。

2 つの点を結ぶ 4 連結、8 連結、またはアンチエイリアスされた線分を描画する

線分を2次元または3次元の点の集合にロバストにフィットさせる(M-estimator technique)。

選択された領域内で,追跡しやすそうな点の疎なセットを見つける

ある種の勾配検索を用いて,コーナーの位置を調整する

ハリス・コーナー検出器。

すべての画像ピクセルにおいて,2x2 勾配共分散行列の最小固有値を計算する

各画像ピクセルにおいて,2x2 勾配共役行列の固有値とベクトルを計算します.

コーナー検出のための制約画像を計算します.

カニーエッジ検出器の実行

色差が十分に大きくなるまで,連結成分を埋めていく

グレースケール画像に適応型閾値を適用する

2値画像に距離変換を適用する

8ビットシングルチャンネル画像のヒストグラムを等化する

あるヒストグラムを別のヒストグラムで割る

ヒストグラムを比較して,画像内のテンプレートを特定する

バックプロジェクトを計算する

配列のヒストグラムを計算する

ベイジアン確率的ヒストグラムを計算します(src と dst はそれぞれ,次のような配列です).ヒストグラム

ヒストグラムをコピーします.

ヒストグラムをしきい値化します.

ヒストグラムを正規化します.

ヒストグラムの最小ビンと最大ビンを求めます。

ヒストグラムをクリアする。

ヒストグラムを解除する。

ヒストグラムのビンの境界線を設定します。

ボックスの頂点の座標を求めます.

フリーマンチェーンリーダーを初期化します.

最後に取得した輪郭を,新しい輪郭に置き換えます.

テンプレートとソース画像のオーバーラップしたウィンドウとの類似性を測定し,その測定値を結果画像に反映させます.

入力配列から四角形を取り出します.

入力配列から,指定された中心を持つ矩形の画像領域を検索します.

事前に計算された空間モーメントと中心モーメントから7つのHuの不変量を計算します。

3次までのすべての空間・中心モーメントを計算する

複雑なモルフォロジー変換を行う

入力画像を1回または複数回拡張する(最大フィルタをかける

入力画像を1回または複数回,消去します(最小フィルタを適用).element pointerがNULLの場合,3x3の長方形の要素が使用される

構造化要素を解放する

log-polar 画像の順変換または逆変換を行う

cvRemap 用に,mapx と mapy を浮動小数点型から整数型に変換します.

指定された座標マップを用いて,汎用的な幾何学変換を行います.

遠近法(射影法)で画像を変換する

アフィン変換を用いて画像を変換します.

画像をリサイズします(入力配列を出力配列に合わせてリサイズします).

入力配列のピクセルを,ある色空間から別の色空間に変換する

画像のラプラシアンを計算します。(d2/dx + d2/dy)I

一般化されたSobelを用いて,画像の微分を計算する

種となるマーカーを使って画像を分割

平均値シフトアルゴリズムによる画像のフィルタリング

ピラミッドをリリース

画像をアップサンプリングし、その結果をガウスカーネルで平滑化します。

入力画像をガウシアンカーネルで平滑化した後、ダウンサンプリングを行う

積分画像を求める。SUM(X,Y) = sum(x<X,y<Y)I(x,y)

画像をカーネルで畳み込みます.

画像をいくつかの方法で平滑化します。

画像を重みをつけてアキュムレータに追加します: acc = acc*(1-alpha) + image*alpha

2つの画像の積をアキュムレータに加える

二乗画像をアキュムレータに追加します。

オブジェクトを解放します.

OpenCVが,IplImageとIplROI構造体を確保するために,IPL関数を利用するようにします.

2つの3次元ベクトルの外積を計算します.

配列を乱数で埋め,RNG の状態を更新します.

オプションの線形変換により,ある配列を別の配列に変換します.

配列をクリアします。

配列の各要素を指定した値に設定します。

ある配列を別の配列にコピーします。

配列に関する低レベルの情報を取得します。

配列のヘッダにユーザデータを割り当てます。

配列データを解放します。

配列データを割り当てます。

特定の配列要素を変更します。

特定の配列要素を変更します。

疎な配列を削除します。

行列を解放します。

画像全体を含むように画像の ROI をリセットし,ROI 構造体を解放します.

ROI 構造体を解除します。

IplImageの注目チャンネルを設定します.

イメージ・ヘッダとイメージ・データを解放します.

freeラッパーを使用します.ここに限らず,すべてのメモリ解放関数(すべて cvFree を呼び出します)は,データを解放した後にそのデータへのポインタをクリアするために,ダブルポインタを受け取ります.ポインタを NULL ポインタに渡しても構いませんが,この場合は何も起こりません.

この呼び出しは, .NET の類似物です.

if(image )
{
iplDeallocate(*image, IPL_IMAGE_HEADER | IPL_IMAGE_ROI);
*image = 0;
}

のアナログですが,デフォルトではIPL関数を利用しません(マクロ CV_TURN_ON_IPL_COMPATIBILITY を参照してください).

引数
image 画像ヘッダへのダブルポインタ

この呼び出しは, .の短縮形です.

if(*image )
{
cvReleaseData(*image);
cvReleaseImageHeader(image);
}
引数
image 画像ヘッダへのダブルポインタ

ROI が NULL に設定されており,coi がはあまり成功しません。0の場合,ROIが確保されます.ほとんどの OpenCV の関数は COI の設定をサポートしません* ので,個々の画像/行列のチャンネルを処理する場合は,( cvCopy や cvSplit によって)チャンネルを別の画像/行列にコピーして処理し,必要ならばその結果を( cvCopy や cvMerge によって)再びコピーします.

引数
image 画像ヘッダへのポインタ.
coi 対象となるチャンネル.0 - すべてのチャンネルが選択される,1 - 最初のチャンネルが選択される,など.チャンネルのインデックスは,1ベースになることに注意してください.

元の画像の ROI が NULL で,rect が画像全体ではない場合,ROI 構造体が割り当てられます.

ほとんどの OpenCV の関数は ROI の利用をサポートしており,画像の矩形領域を別の画像として扱います.例えば,すべてのピクセル座標は,元の画像ではなく ROI の左上(または左下)からカウントされます.

引数
image 画像ヘッダへのポインタ.
rect ROIの矩形領域

これは,以下と同様の結果をもたらしますが,加えて ROI 構造体を解放します. :

cvSetImageROI(image, cvRect(0, 0, image->width, image->height ));
cvSetImageCOI(image, 0);
CV_INLINE CvRect cvRect(int x, int y, int width, int height)
Definition: core/types_c.h:878
引数
image 画像ヘッダへのポインタ.

この関数は,行列データ参照カウンタをデクリメントし,行列ヘッダを解放します.データ参照カウンタが 0 の場合は,データの割り当ても解除されます.

if(*mat )
cvDecRefData(*mat);
cvFree((void**)mat);
CV_INLINE void cvDecRefData(CvArr *arr)
Decrements an array data reference counter.
Definition: core_c.h:298
引数
mat 行列へのダブルポインタ.

低レベルなスカラ <-> 生データ変換関数

この関数は,終了時に,疎な配列を解放し,配列ポインタをクリアします.

引数
mat 配列へのダブルポインタ。

この関数は,新しい値を特定の配列要素に割り当てます.疎な配列の場合,まだノードが存在していなければ,この関数がノードを生成します.

引数
arr 入力配列
idx0 要素のインデックスの最初のゼロベースの成分
value 割り当てられた値

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

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

引数
arr 入力配列
idx 要素を表すインデックスの配列.
value 割り当てられた値

この関数は,シングルチャンネル配列の特定の要素に新しい値を割り当てます.配列がマルチチャンネルの場合は,ランタイムエラーが発生します.なお,Set*D 関数は,シングルチャンネル配列とマルチチャンネル配列のどちらに対しても安全に使えますが,多少速度が遅くなります.

疎な配列の場合,まだノードが存在していなければ,この関数がノードを生成します.

引数
arr 入力配列
idx0 要素のインデックスの最初のゼロベースの成分
value 割り当てられた値

疎な配列の場合は,指定されたノードが削除され,ND の密な配列の要素がクリアされます.

2次元の入力配列を,水平方向と垂直方向に複数回繰り返して,出力配列を埋めます.

この関数は,画像,行列,または多次元の密な配列データを確保します.行列型の場合は,OpenCV の割り当て関数が利用されることに注意してください.IplImage の場合は,事前に CV_TURN_ON_IPL_COMPATIBILITY() が呼ばれていなければ,IPL の関数が利用されます.後者の場合,データの割り当てにはIPLの関数が利用されます.

引数
arr 配列のヘッダ

この関数は,配列データを解放します.の場合は,単にCvMatまたはCvMatNDの場合は,単にcvDecRefData()を呼び出すだけです.つまり,この関数は外部データを解放することはできません.cvCreateData の注意事項も参照してください.

引数
arr 配列のヘッダ

この関数は,ユーザデータを配列のヘッダに割り当てます.cvCreateMatHeader, cvCreateImageHeader, cvCreateMatNDHeader, cvInitMatHeader, cvInitImageHeader, cvInitMatNDHeader を利用する前に,ヘッダを初期化する必要があります.

引数
arr 配列のヘッダ
data ユーザデータ
step 行の長さ(バイト).

この関数は,出力変数に配列データに関する低レベルの情報を書き込みます.すべての出力

すべての出力パラメータはオプションであり,ポインタの一部は NULL に設定されます.配列が ROI を設定した IplImage である場合,ROI のパラメータが返されます.

以下の例では,配列の要素にアクセスする方法を示しています.配列の要素の絶対値を計算します.

float* data;
int step;
CvSize size;
cvGetRawData(array, (uchar**)&data, &step, &size);
step /= sizeof(data[0]);
for(int y = 0; y < size.height; y++, data += step )
for(int x = 0; x < size.width; x++ )
data[x] = (float)fabs(data[x]);
Definition: core/types_c.h:1174
引数
arr 配列のヘッダ
data イメージ全体の原点へのポインタ,または ROI が設定されている場合は ROI 原点へのポインタを出力します.
step 出力 全行の長さ(バイト単位
roi_size 出力される ROI サイズ

この関数は,入力配列から選択された要素を出力配列にコピーします.

\[\texttt{dst} (I)= \texttt{src} (I) \quad \text{if} \quad \texttt{mask} (I) \ne 0.\]

渡された配列のいずれかが IplImage 型であれば,その ROI と COI フィールドが利用されます.両配列は,同じ型,同じ次元数,同じサイズでなければいけません.この関数は,疎な配列をコピーすることもできます(この場合,マスクはサポートされません).

引数
src コピー元の配列
dst コピー先の配列
mask 8ビットシングルチャンネル配列のオペレーションマスク:変更される出力配列の要素を指定します。

この関数は,スカラ値をコピー先配列の選択された各要素にコピーします.

\[\texttt{arr} (I)= \texttt{value} \quad \text{if} \quad \texttt{mask} (I) \ne 0\]

配列 arr が IplImage 型である場合,ROI が利用されますが,COI は設定してはいけません.

引数
arr コピー先の配列
value 値を埋める
mask 8ビットシングルチャンネル配列のオペレーションマスク:変更される出力配列の要素を指定します。

この関数は,配列をクリアします.配列が密な場合 (CvMat,CvMatNDまたは IplImage) の場合, cvZero(array) は cvSet(array,cvscalarAll(0),0) と等価です.疎な配列の場合は,すべての要素が削除されます.

引数
arr クリアされる配列

マルチチャンネル配列を,シングルチャンネル配列の集合に分割したり,特定の [color] プレーンを抽出したりします.

シングルチャンネル配列の集合を,1 つのマルチチャンネル配列にマージしたり,特定の [color] プレーンを配列に挿入したりします.

入力配列の複数のチャンネルを,出力配列の特定のチャンネルにコピーします.

この関数は,いくつかの異なる目的を持っており,そのためにいくつかの異なる名前があります.この関数は,ある配列を別の配列にコピーします.オプションでスケーリングが最初に行われたり,オプションで型変換が後に行われたりします.

\[\texttt{dst} (I) = \texttt{scale} \texttt{src} (I) + ( \texttt{shift} _0, \texttt{shift} _1,...)\]

マルチチャンネル配列のすべてのチャンネルは,独立して処理されます.

変換の種類は,丸めと飽和で行われます.つまり,スケーリング+変換の結果が,出力配列の要素の型の値で正確に表現できない場合,実軸上で最も近い表現可能な値に設定されます.

引数
src 変換元配列
dst 出力配列
scale スケールファクター
shift スケーリングされたソース配列要素に加えられた値

すべての入力配列要素に対して線形変換を行い,その結果の絶対値を格納します: dst(x,y,c) = abs(scale*src(x,y,c)+shift). 出力配列は,8u 型でなければいけません.その他の場合は, cvConvertScale + cvAbsDiffS を利用することができます.

dst(mask) = src1(mask) + src2(mask)

dst(mask) = src(mask) + value

dst(mask) = src1(mask) - src2(mask)

dst(mask) = value - src(mask)

dst(idx) = src1(idx) * src2(idx) * scale (2つの配列をスケーリングして要素ごとに乗算します)

スケーリングを伴う要素単位の除算・反転: src1 == 0 の場合, dst(idx) = src1(idx) * scale / src2(idx) または dst(idx) = scale / src2(idx)

dst = src1 * scale + src2

dst = src1 * alpha + src2 * beta + gamma

dst(idx) = src1(idx) & src2(idx)

dst(idx) = src(idx) & value

dst(idx) = src1(idx) | src2(idx)

dst(idx) = src(idx) | 値

dst(idx) = src1(idx) ^ src2(idx)

dst(idx) = src(idx) ^ value

dst(idx) = ~src(idx)

dst(idx) = lower(idx) <= src(idx) < upper(idx)

dst(idx) = lower <= src(idx) < upper

比較演算は,シングルチャンネルの配列のみをサポートします.デスティネーションイメージは,8uC1 または 8sC1 である必要があります. dst(idx) = src1(idx)cmp_opsrc2(idx)

dst(idx) = src1(idx)cmp_op

dst(idx) = min(src1(idx),src2(idx))

dst(idx) = max(src1(idx),src2(idx))

dst(idx) = min(src(idx),value)

dst(idx) = max(src(idx),value)

dst(x,y,c) = abs(src1(x,y,c) - src2(x,y,c))

dst(x,y,c) = abs(src(x,y,c) - value(c))

cartesian->polar 座標変換を行います.出力成分(大きさ,角度)のどちらか一方はオプションです.

極座標->デカルト座標変換を行います.出力される成分(大きさまたは角度)のどちらかはオプションです。マグニチュードがない場合は,すべて1であるとみなされます.

べき乗を行います: dst(idx) = src(idx)^power

指数計算を行います: dst(idx) = exp(src(idx)). オーバーフローはまだ処理されません。アンダーフローは処理されます.最大の相対誤差は,単精度の入力に対して ~7e-6 です.

自然対数を計算します: dst(idx) = log(abs(src(idx))). 0 の対数は,大きな負の数(~700)を与えます. 最大の相対誤差は,単精度出力では ~3e-7 です.

この関数は,一様分布あるいは正規分布した乱数で出力配列を埋めます.

引数
rng cvRNG によって初期化される CvRNG の状態.
arr コピー先の配列
dist_type 配布タイプ

-CV_RAND_UNI一様分布

  • CV_RAND_NORMAL正規分布またはガウス分布
param1 分布の最初のパラメータ.一様分布の場合は,乱数の範囲の下側の境界を含みます.正規分布の場合は,乱数の平均値を表します.
param2 分布の2番目のパラメータです。一様分布の場合は、乱数の範囲の排他的な上界です。正規分布の場合は、乱数の標準偏差です。
参照
randu, randn, RNG::fill.

多項式のすべての実根および複素根を見つける

この関数は,2つの3次元ベクトルのクロスプロダクトを計算します.

\[\texttt{dst} = \texttt{src1} \times \texttt{src2}\]

または

\[\begin{array}{l} \texttt{dst} _1 = \texttt{src1} _2 \texttt{src2} _3 - \texttt{src1} _3 \texttt{src2} _2 \\ \texttt{dst} _2 = \texttt{src1} _3 \texttt{src2} _1 - \texttt{src1} _1 \texttt{src2} _3 \\ \texttt{dst} _3 = \texttt{src1} _1 \texttt{src2} _2 - \texttt{src1} _2 \texttt{src2} _1 \end{array}\]

引数
src1 第1の入力ベクトル
src2 2番目の入力ベクトル
dst 出力ベクトル

拡張行列変換: dst = alpha*op(A)*op(B) + beta*op(C), ここで op(X)は X または X^T です.

入力配列の各要素を変換し,その結果であるベクトルを出力配列に格納します

入力配列の各要素に対して透視変換を行う

(A-delta)*(A-delta)^T (order=0) または (A-delta)^T*(A-delta) (order=1) を計算します.

行列の転置を行います.正方形の行列はその場で転置することができます。

対称行列を下側(LtoR=0)または上側(LtoR!=0)から補完します。

配列のデータを,水平軸(flip=0),垂直軸(flip=1),または両方の軸(flip=-1)でミラーリングします. cvFlip(src) は,画像を垂直方向に,シーケンスを水平方向に(その場で)反転させます.

行列の特異値分解を行います.

特異値後退代入を行います( A*X = B を解く):フラグは cvSVD と同じでなければいけません.

対称行列の固有値と固有ベクトルを求めます.

  • 対称行列の固有値と固有ベクトルを求めます */ 単位行列を作成します (mat_ij = i == j)

ベクトルの集合に対する共分散行列の計算

参照
flags

画素値の平均と標準偏差の算出

グローバルな最小・最大値とその位置を求める

参照
ref core_c_NormFlags "flags"
flags

離散フーリエ変換: 複素数->複素数,実数->ccs (順変換),ccs->実数 (逆変換)

参照
core_c_DftFlags "フラグ"

DFTの結果を乗算する。DFT(X)*DFT(Y) または DFT(X)*conj(DFT(Y))

参照
core_c_DftFlags "フラグ"

離散コサイン変換

参照
core_c_DftFlags "フラグ"

メモリストレージを解放する。親の子はすべて親より先に解放しなければなりません。子ストレージは、リリースされるとすべてのブロックを親に返します。

メモリ・ストレージをクリアする。これは,( cvRestoreMemStoragePos 以外では)ストレージに割り当てられたメモリを再利用するための唯一の方法(!!)です.子ストレージは,クリアされるとすべてのブロックを親ストレージに戻します.

ストレージの「空きメモリ」の位置を記憶します.

ストレージの「フリーメモリ」の位置を復元します.

シーケンスブロックのデフォルトサイズ(粒度)を変更します。デフォルトのサイズは~1Kバイト

シーケンスから最後の要素を削除し,オプションで保存します。

シーケンスから最初の要素を削除し,オプションで保存します。

シーケンスの末尾に複数の新しい要素を追加する

シーケンスの末尾から複数の要素を削除し,任意に保存する

指定したシーケンス要素の削除

シーケンスからすべての要素を削除します。解放されたメモリは, cvClearMemStorage または cvRestoreMemStoragePos が呼ばれない限り,同じシーケンスでのみ再利用することができます.

シーケンスライタを初期化します.新しい要素は,シーケンスの最後に追加されます.

cvCreateSeq と cvStartAppendToSeq の組み合わせ.

シーケンスヘッダを更新します.cvGetSeqElem やシーケンスリーダを介して,以前に書き込まれた要素にアクセスすると便利です.

シーケンスリーダを初期化します.シーケンスは,順方向にも逆方向にも読むことができます.

シーケンスリーダの位置を変更します.現在の位置に対して,絶対的または相対的な位置に移動します.

シーケンススライスの削除

シーケンスや配列を,別のシーケンスに挿入します。

要素比較機能を使って,シーケンスをインプレースでソートする

シーケンスの要素の順序を,その場で反転させる

インデックスで集合から要素を削除する

集合からすべての要素を削除する

2つの頂点を結ぶ辺を削除する

グラフからすべての頂点と辺を削除する

グラフスキャナを解放します。

ルックアップ変換を行う。ソース配列の要素(8uC1または8sC1)は,256要素のテーブルであるlutarrのインデックスとして使用されます.

指定された「親」配列を持つ木に配列を挿入します。親がフレームと等しい場合(例えば,最も外側にある輪郭),追加された輪郭は親へのヌルポインタを持ちます.

木から輪郭を削除します(輪郭の子も一緒に).

通常,この関数は直接呼び出されません.代わりに,単純なマクロ CV_TURN_ON_IPL_COMPATIBILITY() が利用されます.このマクロは, cvSetIPLAllocators を呼び出し,そこに IPL 割り当て関数へのポインタを渡します.

...
CV_TURN_ON_IPL_COMPATIBILITY()
...
引数
create_header IPL画像ヘッダを生成する関数へのポインタ.
allocate_data IPL画像データの割り当てを行う関数へのポインタ.
deallocate IPLイメージの割り当て解除を行う関数へのポインタ.
create_roi IPL画像のROI(Region of Interest)を作成する関数へのポインタ.
clone_image IPL画像の複製を行う関数へのポインタ.

この関数は,与えられたオブジェクトの型を見つけ,ダブルポインタでreleaseを呼び出します.

引数
struct_ptr オブジェクトへのダブルポインタ

エラー状態を静かに設定する

エラー状態を設定し,現在のエラーモードに応じていくつかの追加動作(メッセージボックスの表示,標準エラー出力へのメッセージの書き込み,アプリケーションの終了など)を行います.

参照
cv::accumulateSquare
cv::accumulateProduct
cv::accumulateWeighted

コピー元の2次元配列を、より大きなコピー先の配列の内部にコピーし、コピーされた領域の周りに指定された型(IPL_BORDER_*)の境界線を作成します。

引数
src コピー元の画像
dst コピー先の画像
smoothtype スムージングの種類,SmoothMethod_cを参照してください.
size1 スムージング操作の最初のパラメータ,アパーチャ幅です.正の奇数(1, 3, 5, ...)でなければなりません。
size2 スムージング操作の2番目のパラメータ,アパーチャの高さ.CV_MEDIAN や CV_BILATERAL では無視されます.単純なスケーリング/非スケーリング,ガウスぼかしの場合, size2 が0ならば size1 にセットされます.それ以外の場合は,正の奇数でなければいけません.
sigma1 ガウシアンパラメータの場合、このパラメータにはガウシアン$\sigma$(標準偏差)を指定します。これがゼロの場合、カーネルサイズから計算されます。

\[\sigma = 0.3 (n/2 - 1) + 0.8 \quad \text{where} \quad n= \begin{array}{l l} \mbox{\texttt{size1} for horizontal kernel} \\ \mbox{\texttt{size2} for vertical kernel} \end{array}\]

小さなカーネルに標準シグマを使うと($3\times 3$から$7\times 7$)を使用すると,速度が向上します.sigma1が0ではなく、size1とsize2が0の場合、カーネルサイズはシグマから計算されます(十分な精度で動作するため)。
sigma2 バイラテラル・フィルタリングの追加パラメータ
参照
cv::GaussianBlur,cv::blur,cv::medianBlur,cv::bilateralFilter.
引数
src 入力画像.
dst src と同じサイズ,同じチャンネル数の出力画像.
kernel シングルチャンネルの浮動小数点型行列であるコンボリューションカーネル(というよりも,相関カーネル).異なるチャンネルに異なるカーネルを適用したい場合は, split を用いて画像を別々のカラープレーンに分割し,それらを個別に処理します.
anchor カーネル内でのフィルタリングされた点の相対的な位置を示す,カーネルのアンカー.デフォルト値 (-1,-1) は,アンカーがカーネルの中心にあることを意味します.
参照
cv::filter2D
cv::integral

dst_width = floor(src_width/2)[+1], dst_height = floor(src_height/2)[+1].

参照
cv::pyrDown

dst_width = src_width*2, dst_height = src_height*2

参照
cv::pyrUp
cv::pyrMeanShiftFiltering
cv::watershed

(aperture_size = 1,3,5,7) または Scharr (aperture_size = -1) 演算子を使用します。Scharrは,1次dxまたはdy微分に対してのみ利用できます.

参照
cv::Sobel
cv::Laplacian
cv::cvtColor
cv::resize
覚え書き
::cvGetQuadrangleSubPix は, ::cvWarpAffine と似ていますが,外れ値は複製境界モードを用いて外挿されます.
参照
cv::warpAffine
cv::warpPerspective
cv::remap
cv::convertMaps
cv::warpPolar

Linear-Polar 画像の順変換,逆変換を行います.

参照
cv::warpPolar
cvCreateStructuringElementEx
cv::erode

element ポインタが NULL の場合,3x3 の矩形の要素が利用されます.

参照
cv::dilate
cv::morphologyEx
cv::moments
cv::HuMoments

dst(x,y) <- src(x + center.x - dst_width/2, y + center.y - dst_height/2). 小数点以下の座標を持つピクセルの値は,バイリニア補間を用いて取得されます

参照
cv::getRectSubPix

matrixarr = ( a11 a12 | b1 ) dst(x,y) <- src(A[x y]' + b) ( a21 a22 | b2 ) (バイリニア補間を用いて,分数座標を持つピクセルを取得します).

参照
cvWarpAffine
cv::matchTemplate

(substitutor が NULL の場合,最後に取得された輪郭がツリーから削除されます)

参照
cvFindContours

このリーダは,すべてのチェーンポイントの座標を反復的に取得するために利用されます.フリーマンコードをそのまま読み取る必要がある場合は,単純なシーケンスリーダを利用します.

参照
cvApproxChains

これは,ヒストグラムのビンの範囲を設定するための独立した関数です.パラメータ ranges と uniform のより詳細な説明は,同様に範囲を初期化できる関数 :ocvCalcHist を参照してください.ヒストグラムのビンの範囲は、ヒストグラムが計算される前、あるいはヒストグラムのバックプロジェクションが計算される前に設定しなければなりません。

引数
hist ヒストグラム.
ranges ビンの範囲を表す配列.詳細は, :ocvCreateHist を参照してください。
uniform 一様性フラグ.詳細は :ocvCreateHist を参照してください。

この関数は,ヒストグラム(ヘッダとデータ)を解放します.ヒストグラムへのポインタは,この関数によってクリアされます。もし *hist ポインタが既にNULLならば,この関数は何もしません.

引数
hist 解放されたヒストグラムへのダブルポインタ.

この関数は,密なヒストグラムの場合はすべてのヒストグラムビンを0にし,疎な配列の場合はすべてのヒストグラムビンを削除します.

引数
hist ヒストグラム.

この関数は,ヒストグラムの最小ビンと最大ビン,そしてそれらの位置を求めます.すべての出力引数はオプションです.同じ値を持つ複数の極大値の中から,(辞書的順序で)最小のインデックスを持つものが返されます.また,複数の極大値や極小値がある場合は,辞書的順序で最も早いもの(極大値の位置)が返されます.

引数
hist ヒストグラム.
min_value ヒストグラムの最小値へのポインタ.
max_value ヒストグラムの最大値へのポインタ.
min_idx 最小値を表す座標の配列へのポインタ.
max_idx 最大値を表す座標の配列へのポインタ.

この関数は,ヒストグラムのビンの合計が factor と等しくなるようにスケーリングすることで,ヒストグラムのビンを正規化します.

引数
hist ヒストグラムへのポインタ.
factor 正規化係数.

この関数は,指定した閾値以下のヒストグラムビンを消去します.

引数
hist ヒストグラムへのポインタ.
threshold しきい値レベル。

この関数は,ヒストグラムのコピーを作成します.2番目のヒストグラムポインタ *dst が NULL の場合は, src と同じサイズの新しいヒストグラムが作成されます.そうでない場合は,両方のヒストグラムの型とサイズが等しくなければいけません.そして,この関数は,コピー元のヒストグラムのビン値をコピー先のヒストグラムにコピーし, src と同じビン値の範囲を設定します.

引数
src コピー元ヒストグラム.
dst コピー先のヒストグラムへのポインタ.
参照
cv::calcHist
cvCalcBackProject.cv::calcBackProject

この関数は,入力画像のパッチのヒストグラムと,与えられたヒストグラムを比較することで,バックプロジェクションを計算します.この関数は, matchTemplate と似ていますが,ラスタパッチを検索窓内の可能なすべての位置と比較する代わりに,関数 CalcBackProjectPatch はヒストグラムを比較します.以下のアルゴリズム図をご覧ください。

image

引数
image ソース画像(ただし,CvMat** を渡しても構いません).
dst 出力画像。
range
hist ヒストグラム.
method cvCompareHist に渡される比較手法(この関数の説明を参照してください).
factor 出力画像の正規化スケールに影響を与える,ヒストグラムの正規化係数.よく分からない場合は,1を渡します.
参照
cvCalcBackProjectPatch

この関数は,次のような2つのヒストグラムから,物体の確率密度を求めます.

\[\texttt{disthist} (I)= \forkthree{0}{if \‍(\texttt{hist1}(I)=0\‍)}{\texttt{scale}}{if \‍(\texttt{hist1}(I) \ne 0\‍) and \‍(\texttt{hist2}(I) > \texttt{hist1}(I)\‍)}{\frac{\texttt{hist2}(I) \cdot \texttt{scale}}{\texttt{hist1}(I)}}{if \‍(\texttt{hist1}(I) \ne 0\‍) and \‍(\texttt{hist2}(I) \le \texttt{hist1}(I)\‍)}\]

引数
hist1 1番目のヒストグラム(除数).
hist2 2番目のヒストグラム.
dst_hist 移動先のヒストグラム.
scale 出力ヒストグラムのスケールファクタ.
参照
cv::equalizeHist
cv::distanceTransform

CV_ADAPTIVE_THRESH_MEAN_C および CV_ADAPTIVE_THRESH_GAUSSIAN_C の2つのパラメータは,近傍領域のサイズ(3, 5, 7 など)と,平均値から差し引かれる定数(...,-3,2,-1,0,1,2,3,...)です.

参照
cv::adaptiveThreshold
cv::floodFill
cv::Canny

Dx^2 * Dyy + Dxx * Dy^2 - 2 * Dx * Dy * Dxy. この結果に閾値を適用すると、角の座標が得られる

参照
cv::preCornerDetect
cv::cornerEigenValsAndVecs
cv::cornerMinEigenVal

det(M) - k*(trace(M)^2) を計算します。ここで M は各ピクセルの 2x2 勾配共分散行列です。

参照
cv::cornerHarris
cv::cornerSubPix
cv::goodFeaturesToTrack
cv::fitLine
cv::line

thickness<0(例えば, thickness == CV_FILLED )の場合,塗りつぶされたボックスが描画されます.

参照
cv::rectangle
cv::rectangle

thickness は, cvRectangle の場合と同じように動作します.

参照
cv::circle

に依存します.thickness,start_angleおよびend_angleパラメーターによって決まります.結果として得られる図形の回転は角度. 角度の単位は,すべて度です

参照
cv::ellipse
cv::fillConvexPoly
cv::fillPoly
cv::polylines

この関数は,テキスト描画関数に渡すことのできるフォント構造体を初期化します.

引数
font この関数によって初期化されたフォント構造体へのポインタ
font_face フォント名の識別子.を参照してください.cv::HersheyFontsと,それに対応する古い CV_* 識別子を参照してください.
hscale 水平方向のスケール.1.0f に等しい場合,文字はフォントの種類に応じた元の幅を持ちます.0.5f に等しい場合,文字は元の幅の半分になります.
vscale 垂直方向のスケール。1.0f に設定すると、フォントの種類に応じて、元の高さの文字が表示されます。0.5f の場合、文字の高さは元の半分になります。
shear 垂直線に対する文字の傾きのおおよその接線。0の場合はノンイタリックフォント、1.0fの場合は約45度の傾きなどを意味します。
thickness 文字のストロークの太さ
line_type ストロークの種類,線の説明を参照してください.
参照
cvPutText
cvInitFont, cvGetTextSize, cvFont,cv::putText
cv::getTextSize
cv::drawContours