| OpenCV 4.5.3(日本語機械翻訳)
 | 
| クラス | |
| class | cv::CLAHE | 
| Contrast Limited Adaptive Histogram Equalizationの基底クラスです.[【詳解】(英語] | |
| 列挙型 | |
| enum | cv::HistCompMethods
{ cv::HISTCMP_CORREL = 0 , cv::HISTCMP_CHISQR = 1 , cv::HISTCMP_INTERSECT = 2 , cv::HISTCMP_BHATTACHARYYA = 3 , cv::HISTCMP_HELLINGER = HISTCMP_BHATTACHARYYA , cv::HISTCMP_CHISQR_ALT = 4 , cv::HISTCMP_KL_DIV = 5 } | 
| 関数 | |
| CV_EXPORTS void | cv::calcHist (const Mat *images, int nimages, const int *channels, InputArray mask, OutputArray hist, int dims, const int *histSize, const float **ranges, bool uniform=true, bool accumulate=false) | 
| 配列の集合のヒストグラムを計算します.[【詳解】(英語] | |
| CV_EXPORTS void | cv::calcHist (const Mat *images, int nimages, const int *channels, InputArray mask, SparseMat &hist, int dims, const int *histSize, const float **ranges, bool uniform=true, bool accumulate=false) | 
| CV_EXPORTS_W void | cv::calcHist (InputArrayOfArrays images, const std::vector< int > &channels, InputArray mask, OutputArray hist, const std::vector< int > &histSize, const std::vector< float > &ranges, bool accumulate=false) | 
| CV_EXPORTS void | cv::calcBackProject (const Mat *images, int nimages, const int *channels, InputArray hist, OutputArray backProject, const float **ranges, double scale=1, bool uniform=true) | 
| ヒストグラムのバックプロジェクションを計算します.[【詳解】(英語] | |
| CV_EXPORTS void | cv::calcBackProject (const Mat *images, int nimages, const int *channels, const SparseMat &hist, OutputArray backProject, const float **ranges, double scale=1, bool uniform=true) | 
| CV_EXPORTS_W void | cv::calcBackProject (InputArrayOfArrays images, const std::vector< int > &channels, InputArray hist, OutputArray dst, const std::vector< float > &ranges, double scale) | 
| CV_EXPORTS_W double | cv::compareHist (InputArray H1, InputArray H2, int method) | 
| 2つのヒストグラムを比較します.[【詳解】(英語] | |
| CV_EXPORTS double | cv::compareHist (const SparseMat &H1, const SparseMat &H2, int method) | 
| CV_EXPORTS_W void | cv::equalizeHist (InputArray src, OutputArray dst) | 
| グレースケール画像のヒストグラムを均等化します.[【詳解】(英語] | |
| CV_EXPORTS_W Ptr< CLAHE > | cv::createCLAHE (double clipLimit=40.0, Size tileGridSize=Size(8, 8)) | 
| オブジェクトへのスマート ポインタを作成し、初期化します。cv::CLAHEクラスを作成し,それを初期化します.[【詳解】(英語] | |
| CV_EXPORTS float | cv::EMD (InputArray signature1, InputArray signature2, int distType, InputArray cost=noArray(), float *lowerBound=0, OutputArray flow=noArray()) | 
| 2つの重み付けされた点配置間の「最小作業」距離を計算します.[【詳解】(英語] | |
| cv::CV_EXPORTS_AS (EMD) float wrapperEMD(InputArray signature1 | |
| 変数 | |
| InputArray | cv::signature2 | 
| InputArray int | cv::distType | 
| InputArray int InputArray | cv::cost =noArray() | 
| InputArray int InputArray CV_IN_OUT Ptr< float > | cv::lowerBound = Ptr<float>() | 
| InputArray int InputArray CV_IN_OUT Ptr< float > OutputArray | cv::flow = noArray() ) | 
| enum cv::HistCompMethods | 
ヒストグラム比較法
| CV_EXPORTS void cv::calcBackProject | ( | const Mat * | images, | 
| int | nimages, | ||
| const int * | channels, | ||
| const SparseMat & | hist, | ||
| OutputArray | backProject, | ||
| const float ** | ranges, | ||
| double | scale
= 1, | ||
| bool | uniform
= true | ||
| ) | 
これはオーバーロードされたメンバ関数です。利便性のために用意されています。元の関数との違いは引き数のみです。
| CV_EXPORTS void cv::calcBackProject | ( | const Mat * | images, | 
| int | nimages, | ||
| const int * | channels, | ||
| InputArray | hist, | ||
| OutputArray | backProject, | ||
| const float ** | ranges, | ||
| double | scale
= 1, | ||
| bool | uniform
= true | ||
| ) | 
ヒストグラムのバックプロジェクションを計算します.
この関数はcv::calcBackProjectは,ヒストグラムのバックプロジェクションを計算します.つまり,以下と同様にcalcHistと同様に,この関数は,各位置(x, y)において,入力画像の選択されたチャンネルの値を収集し,それに対応するヒストグラムのビンを求めます.しかし,この関数は,ビンの値をインクリメントするのではなく,ビンの値を読み込み,それを scale でスケーリングして backProject(x,y) に格納します.統計学の観点から言えば,この関数は,ヒストグラムで表される経験的な確率分布に関する各要素の値の確率を計算します.例えば,シーンの中の明るい色の物体を見つけて追跡する方法を見てみましょう.
これは、CamShift カラーオブジェクトトラッカーの近似アルゴリズムです。
| images | ソースアレイ。これらはすべて,同じ深さ,CV_8U, CV_16U または CV_32F ,そして同じサイズでなければいけません.また,それぞれが任意のチャンネル数を持つことができます. | 
| nimages | ソース画像の数. | 
| channels | バックプロジェクションの計算に利用されるチャンネルのリスト.チャンネルの数は,ヒストグラムの次元と一致しなければいけません.配列の1番目のチャンネルは,0 から images[0].channels()-1 までの数字で表され,配列の2番目のチャンネルは, images[0].channels() から images[0].channels() + images[1].channels()-1 までの数字で表され,以下同様です. | 
| hist | 密なヒストグラム,または疎なヒストグラムを入力とします. | 
| backProject | 変換先のバックプロジェクション配列は, images[0] と同じサイズ,同じビット深度のシングルチャンネル配列です. | 
| ranges | 各次元のヒストグラムのビンの境界を表す配列の配列.参照calcHist. | 
| scale | 出力されるバックプロジェクションのスケールファクタ(オプション). | 
| uniform | ヒストグラムが一様であるか否かを示すフラグ(上述). | 
| CV_EXPORTS_W void cv::calcBackProject | ( | InputArrayOfArrays | images, | 
| const std::vector< int > & | channels, | ||
| InputArray | hist, | ||
| OutputArray | dst, | ||
| const std::vector< float > & | ranges, | ||
| double | scale | ||
| ) | 
これはオーバーロードされたメンバ関数です。利便性のために用意されています。元の関数との違いは引き数のみです。
| CV_EXPORTS void cv::calcHist | ( | const Mat * | images, | 
| int | nimages, | ||
| const int * | channels, | ||
| InputArray | mask, | ||
| OutputArray | hist, | ||
| int | dims, | ||
| const int * | histSize, | ||
| const float ** | ranges, | ||
| bool | uniform
= true, | ||
| bool | accumulate
= false | ||
| ) | 
配列の集合のヒストグラムを計算します.
この関数はcv::calcHistは,1つあるいは複数の配列のヒストグラムを計算します.ヒストグラムのビンを増やすのに使われるタプルの要素は,対応する入力配列の同じ位置から取られます.以下のサンプルでは,カラー画像の2次元色相・彩度ヒストグラムを計算する方法を示しています.
| images | ソースアレイ。これらはすべて,同じ深さ,CV_8U, CV_16U または CV_32F ,そして同じサイズでなければいけません.また,それぞれが任意のチャンネル数を持つことができます. | 
| nimages | ソース画像の数. | 
| channels | ヒストグラムを計算するために利用されるDIMチャンネルのリスト.1番目の配列チャンネルは,0 から images[0].channels()-1 までの数字で表され,2番目の配列チャンネルは, images[0].channels() から images[0].channels() + images[1].channels()-1 までの数字で表され,以下同様に数えられます. | 
| mask | オプションのマスク.行列が空ではない場合, images[i] と同じサイズの8ビット配列でなければいけません.非0のマスク要素は,ヒストグラムでカウントされる配列要素を示します. | 
| hist | 密な,あるいは疎な dims - 次元の配列であるヒストグラムを出力します. | 
| dims | ヒストグラムの次元は正であり, CV_MAX_DIMS (現在の OpenCV のバージョンでは 32 に等しい)よりも大きくてはいけません. | 
| histSize | 各次元におけるヒストグラムのサイズを表す配列. | 
| ranges | 各次元におけるヒストグラムのビンの境界線を表す dims 配列の配列.ヒストグラムが一様( uniform =true )である場合,各次元 i において,0 番目のヒストグラムビンの下側(含む)の境界を指定するだけで十分です.  0番目のヒストグラムビンの下側(含む)境界線と,最後のヒストグラムビンの上側(排他的)境界線 ![$U_{\texttt{histSize}[i]-1}$](form_889.png) 最後のヒストグラムビン histSize[i]-1 の上側(排他的)境界を指定すれば十分です.つまり,一様なヒストグラムの場合, ranges[i]はそれぞれ2個の要素を持つ配列となります.ヒストグラムが一様でない場合( uniform=false ), ranges[i] の各要素には histSize[i]+1 の要素が含まれます. ![$L_0, U_0=L_1, U_1=L_2, ..., U_{\texttt{histSize[i]}-2}=L_{\texttt{histSize[i]}-1}, U_{\texttt{histSize[i]}-1}$](form_890.png) . の間に存在しない配列要素は,ヒストグラムには含まれません.  および ![$U_{\texttt{histSize[i]}-1}$](form_891.png) の間にない配列要素は,ヒストグラムには含まれません. | 
| uniform | ヒストグラムが一様であるか否かを示すフラグ(上述). | 
| accumulate | 集積フラグ.これがセットされていると,ヒストグラムが割り当てられたときに,最初からクリアされません.この機能により,複数の配列セットから1つのヒストグラムを計算したり,ヒストグラムを随時更新したりすることができます. | 
| CV_EXPORTS void cv::calcHist | ( | const Mat * | images, | 
| int | nimages, | ||
| const int * | channels, | ||
| InputArray | mask, | ||
| SparseMat & | hist, | ||
| int | dims, | ||
| const int * | histSize, | ||
| const float ** | ranges, | ||
| bool | uniform
= true, | ||
| bool | accumulate
= false | ||
| ) | 
これはオーバーロードされたメンバ関数です。利便性のために用意されています。元の関数との違いは引き数のみです。
このバージョンでは,出力に SparseMat を利用しています.
| CV_EXPORTS_W void cv::calcHist | ( | InputArrayOfArrays | images, | 
| const std::vector< int > & | channels, | ||
| InputArray | mask, | ||
| OutputArray | hist, | ||
| const std::vector< int > & | histSize, | ||
| const std::vector< float > & | ranges, | ||
| bool | accumulate
= false | ||
| ) | 
これはオーバーロードされたメンバ関数です。利便性のために用意されています。元の関数との違いは引き数のみです。
これはオーバーロードされたメンバ関数です。利便性のために用意されています。元の関数との違いは引き数のみです。
| CV_EXPORTS_W double cv::compareHist | ( | InputArray | H1, | 
| InputArray | H2, | ||
| int | method | ||
| ) | 
2つのヒストグラムを比較します.
この関数はcv::compareHistこの関数は,指定された手法を用いて 2 つの密なヒストグラム,あるいは 2 つの疎なヒストグラムを比較します.
この関数は .
.
この関数は,1次元,2次元,3次元の密なヒストグラムではうまく動作しますが,高次元の疎なヒストグラムには適していないかもしれません.このようなヒストグラムでは,エイリアシングやサンプリングの問題のために,非ゼロのヒストグラムビンの座標がわずかにずれることがあります.このようなヒストグラムや,より一般的な重み付けされた点の疎な構成を比較するには,次のような方法が考えられます.EMD関数によってローカルに保存されたすべての記述子をデータセットに挿入して更新する.
| H1 | 最初に比較したヒストグラム。 | 
| H2 | H1と同じ大きさの第2比較ヒストグラム。 | 
| method | 比較方法についてはHistCompMethods | 
| CV_EXPORTS_W Ptr< CLAHE > cv::createCLAHE | ( | double | clipLimit
= 40.0, | 
| Size | tileGridSize
= 
Size(8, 8) | ||
| ) | 
オブジェクトへのスマート ポインタを作成し、初期化します。cv::CLAHEクラスを作成し,それを初期化します.
| clipLimit | コントラストを制限するためのしきい値. | 
| tileGridSize | ヒストグラムの均等化のためのグリッドのサイズ.tileGridSize は,行と列のタイルの数を定義します. | 
| CV_EXPORTS float cv::EMD | ( | InputArray | signature1, | 
| InputArray | signature2, | ||
| int | distType, | ||
| InputArray | cost
= noArray(), | ||
| float * | lowerBound
= 0, | ||
| OutputArray | flow
= noArray() | ||
| ) | 
2つの重み付けされた点配置間の「最小作業」距離を計算します.
この関数は,2つの重み付けされた点群の間の地球移動距離および/または距離の下界を計算します.で説明されているアプリケーションの1つです.[RubnerSept98] [Rubner2000,[Rubner2000]は,画像検索のための多次元ヒストグラム比較です.EMDは輸送問題であり,シンプレックスアルゴリズムの修正を用いて解かれるため,最悪の場合,複雑さは指数関数的になるが,平均的にははるかに高速である.実数メトリックの場合、下側の境界は(線形時間アルゴリズムを使用して)さらに高速に計算することができ、2つのシグネチャが同じオブジェクトに関連しないほど離れているかどうかを大まかに判断するのに使用することができます。
| signature1 | 最初の署名は  浮動小数点の行列です。各行には,点の重みと,それに続く点の座標が格納されています.ユーザ定義のコスト行列が使用される場合、行列は1列(重みのみ)であることが許されます。重みは非負で、少なくとも1つの非ゼロの値を持たなければならない。 | 
| signature2 | 第2署名は、行数が異なっていても、署名1と同じ形式である。重みの合計が異なる場合もある。この場合、追加の「ダミー」ポイントがsignature1またはsignature2のいずれかに追加される。重みは非負であり、少なくとも1つの非ゼロの値を持つ必要がある。 | 
| distType | 使用されるメトリック。参照DistanceTypes. | 
| cost | ユーザー定義の  コストマトリックスを参照してください。また、コスト行列を使用する場合は、メトリック関数が必要なため、lower boundary lowerBoundは計算できません。 | 
| lowerBound | オプションの入出力パラメータ:質量中心間の距離である2つのシグネチャー間の距離の下部境界。ユーザー定義のコスト行列が使用されている場合、点構成の総重量が等しくない場合、またはシグネチャが重量のみで構成されている場合(シグネチャ行列が1列の場合)は、下側境界が計算されないことがあります。また,*lowerBound を初期化する必要があります。計算された質量中心間の距離が *lowerBound 以上の場合(シグネチャが十分に離れていることを意味します),この関数はEMDを計算しません.どのような場合でも,*lowerBound は,リターン時に計算されたマスセンター間の距離に設定されます。したがって,質量中心間の距離とEMDの両方を計算したい場合は,*lowerBoundを0に設定する必要があります. | 
| flow | 結果  フローのマトリックス。  は、署名1の  署名1の-番目のポイントから  シグネチャ2の-番目の点へのフローです. | 
| CV_EXPORTS_W void cv::equalizeHist | ( | InputArray | src, | 
| OutputArray | dst | ||
| ) | 
グレースケール画像のヒストグラムを均等化します.
この関数は,以下のアルゴリズムを用いて,入力画像のヒストグラムを均等化します.
 src のヒストグラムを計算します.
src のヒストグラムを計算します.
![\[H'_i = \sum _{0 \le j < i} H(j)\]](form_893.png) 
 をルックアップテーブルとして用いて,画像を変換します.
をルックアップテーブルとして用いて,画像を変換します. 
このアルゴリズムにより,画像の輝度が正規化され,コントラストが向上します.
| src | 8ビットのシングルチャンネル画像 | 
| dst | src と同じサイズ,同じタイプの出力画像. |