OpenCV 4.5.3(日本語機械翻訳)
公開型 | 公開メンバ関数 | 静的公開メンバ関数 | 全メンバ一覧
cv::xfeatures2d::PCTSignatures クラス abstract

Class implementing PCT (position-color-texture) signature extraction as described in [KrulisLS16]. The algorithm is divided to a feature sampler and a clusterizer. Feature sampler produces samples at given set of coordinates. Clusterizer then produces clusters of these samples using k-means algorithm. Resulting set of clusters is the signature of the input image. [詳解]

#include <xfeatures2d.hpp>

cv::Algorithmを継承しています。

公開型

enum DistanceFunction {
L0_25 , L0_5 , L1 , L2 ,
L2SQUARED , L5 , L_INFINITY
}
Lp距離関数セレクタ.
enum PointDistribution { UNIFORM , REGULAR , NORMAL }
ランダムポイントジェネレータによるポイント分布のサポート[【詳解】(英語]
enum SimilarityFunction { MINUS , GAUSSIAN , HEURISTIC }
類似関数セレクタ[【詳解】(英語]

公開メンバ関数

virtual CV_WRAP void computeSignature (InputArray image, OutputArray signature) const =0
与えられた画像のシグネチャを計算します.[【詳解】(英語]
virtual CV_WRAP void computeSignatures (const std::vector< Mat > &images, std::vector< Mat > &signatures) const =0
複数の画像に対するシグネチャを並列に計算します.[【詳解】(英語]
virtual CV_WRAP int getSampleCount () const =0
画像から採取した初期サンプルの数。
virtual CV_WRAP int getGrayscaleBits () const =0
グレースケールビットマップの色分解能を割り当てビットで表したもの(例:値4は16階調のグレーを使用することを意味する)。グレースケールビットマップは、コントラストとエントロピー値の計算に使用されます。
virtual CV_WRAP void setGrayscaleBits (int grayscaleBits)=0
グレースケールビットマップの色分解能を割り当てビットで表したもの(例:値4は16階調のグレーを使用することを意味する)。グレースケールビットマップは、コントラストとエントロピー値の計算に使用されます。
virtual CV_WRAP int getWindowRadius () const =0
コントラストとエントロピーの計算に使用されるテクスチャサンプリングウィンドウのサイズ(ウィンドウの中心は常に、対応する特徴サンプルのx,y座標で選択されたピクセルになります)。
virtual CV_WRAP void setWindowRadius (int radius)=0
コントラストとエントロピーの計算に使用されるテクスチャサンプリングウィンドウのサイズ(ウィンドウの中心は常に、対応する特徴サンプルのx,y座標で選択されたピクセルになります)。
virtual CV_WRAP float getWeightX () const =0
特徴空間の各軸を線形に伸ばすための重み(乗算定数)(x,y=位置,L,a,b=CIE Lab空間における色,c=コントラスト,e=エントロピー).
virtual CV_WRAP void setWeightX (float weight)=0
特徴空間の各軸を線形に伸ばすための重み(乗算定数)(x,y=位置,L,a,b=CIE Lab空間における色,c=コントラスト,e=エントロピー).
virtual CV_WRAP float getWeightY () const =0
特徴空間の各軸を線形に伸ばすための重み(乗算定数)(x,y=位置,L,a,b=CIE Lab空間における色,c=コントラスト,e=エントロピー).
virtual CV_WRAP void setWeightY (float weight)=0
特徴空間の各軸を線形に伸ばすための重み(乗算定数)(x,y=位置,L,a,b=CIE Lab空間における色,c=コントラスト,e=エントロピー).
virtual CV_WRAP float getWeightL () const =0
特徴空間の各軸を線形に伸ばすための重み(乗算定数)(x,y=位置,L,a,b=CIE Lab空間における色,c=コントラスト,e=エントロピー).
virtual CV_WRAP void setWeightL (float weight)=0
特徴空間の各軸を線形に伸ばすための重み(乗算定数)(x,y=位置,L,a,b=CIE Lab空間における色,c=コントラスト,e=エントロピー).
virtual CV_WRAP float getWeightA () const =0
特徴空間の各軸を線形に伸ばすための重み(乗算定数)(x,y=位置,L,a,b=CIE Lab空間における色,c=コントラスト,e=エントロピー).
virtual CV_WRAP void setWeightA (float weight)=0
特徴空間の各軸を線形に伸ばすための重み(乗算定数)(x,y=位置,L,a,b=CIE Lab空間における色,c=コントラスト,e=エントロピー).
virtual CV_WRAP float getWeightB () const =0
特徴空間の各軸を線形に伸ばすための重み(乗算定数)(x,y=位置,L,a,b=CIE Lab空間における色,c=コントラスト,e=エントロピー).
virtual CV_WRAP void setWeightB (float weight)=0
特徴空間の各軸を線形に伸ばすための重み(乗算定数)(x,y=位置,L,a,b=CIE Lab空間における色,c=コントラスト,e=エントロピー).
virtual CV_WRAP float getWeightContrast () const =0
特徴空間の各軸を線形に伸ばすための重み(乗算定数)(x,y=位置,L,a,b=CIE Lab空間における色,c=コントラスト,e=エントロピー).
virtual CV_WRAP void setWeightContrast (float weight)=0
特徴空間の各軸を線形に伸ばすための重み(乗算定数)(x,y=位置,L,a,b=CIE Lab空間における色,c=コントラスト,e=エントロピー).
virtual CV_WRAP float getWeightEntropy () const =0
特徴空間の各軸を線形に伸ばすための重み(乗算定数)(x,y=位置,L,a,b=CIE Lab空間における色,c=コントラスト,e=エントロピー).
virtual CV_WRAP void setWeightEntropy (float weight)=0
特徴空間の各軸を線形に伸ばすための重み(乗算定数)(x,y=位置,L,a,b=CIE Lab空間における色,c=コントラスト,e=エントロピー).
virtual CV_WRAP std::vector< Point2f > getSamplingPoints () const =0
画像から採取された初期サンプル。これらのサンプルされた特徴は、クラスタリングの入力となる。
virtual CV_WRAP void setWeight (int idx, float value)=0
特徴空間の個々の軸を線形に伸ばすための重み(乗算定数)。[【詳解】(英語]
virtual CV_WRAP void setWeights (const std::vector< float > &weights)=0
特徴空間の個々の軸を線形に伸ばすための重み(乗算定数)。[【詳解】(英語]
virtual CV_WRAP void setTranslation (int idx, float value)=0
特徴空間の各軸の平行移動。[【詳解】(英語]
virtual CV_WRAP void setTranslations (const std::vector< float > &translations)=0
特徴空間の各軸の平行移動。[【詳解】(英語]
virtual CV_WRAP void setSamplingPoints (std::vector< Point2f > samplingPoints)=0
入力画像をサンプリングするためのサンプリングポイントを設定します。[【詳解】(英語]
virtual CV_WRAP std::vector< int > getInitSeedIndexes () const =0
k-meansアルゴリズムの初期シード(クラスターの初期数)。
virtual CV_WRAP void setInitSeedIndexes (std::vector< int > initSeedIndexes)=0
k-meansアルゴリズムの初期シードインデックス。
virtual CV_WRAP int getInitSeedCount () const =0
k-meansアルゴリズムの初期シード(初期クラスタ数)の数。
virtual CV_WRAP int getIterationCount () const =0
k-means クラスタリングの反復回数.修正されたクラスタリングはクラスタの刈り込みであるため(k個のクラスタを反復的に改良するものではない)、固定の反復回数を使用します。
virtual CV_WRAP void setIterationCount (int iterationCount)=0
k-means クラスタリングの反復回数.修正されたクラスタリングはクラスタの刈り込みであるため(k個のクラスタを反復的に改良するものではない)、固定の反復回数を使用します。
virtual CV_WRAP int getMaxClustersCount () const =0
生成されるクラスターの最大数。この数を超えた場合,クラスタは重みでソートされ,最小のクラスタが切り取られます.
virtual CV_WRAP void setMaxClustersCount (int maxClustersCount)=0
生成されるクラスターの最大数。この数を超えた場合,クラスタは重みでソートされ,最小のクラスタが切り取られます.
virtual CV_WRAP int getClusterMinSize () const =0
このパラメータに繰り返しのインデックスを乗じることで、クラスタサイズの下限値が得られます。制限値で指定されたポイント数より少ないポイントを含むクラスタは、そのセントロイドが削除され、ポイントが再割り当てされます。
virtual CV_WRAP void setClusterMinSize (int clusterMinSize)=0
このパラメータに繰り返しのインデックスを乗じることで、クラスタサイズの下限値が得られます。制限値で指定されたポイント数より少ないポイントを含むクラスタは、そのセントロイドが削除され、ポイントが再割り当てされます。
virtual CV_WRAP float getJoiningDistance () const =0
Threshold 2つのセントロイド間のユークリッド距離。2つのクラスタ中心がこの距離よりも近い場合、一方のセントロイドが棄却され、ポイントが再割り当てされます。
virtual CV_WRAP void setJoiningDistance (float joiningDistance)=0
Threshold 2つのセントロイド間のユークリッド距離。2つのクラスタ中心がこの距離よりも近い場合、一方のセントロイドが棄却され、ポイントが再割り当てされます。
virtual CV_WRAP float getDropThreshold () const =0
与えられたしきい値以下の重みを持つk-meansのセントロイドを削除します。
virtual CV_WRAP void setDropThreshold (float dropThreshold)=0
与えられたしきい値以下の重みを持つk-meansのセントロイドを削除します。
virtual CV_WRAP int getDistanceFunction () const =0
k-meansで2点間の距離を測定するために使用される距離関数セレクタ。
virtual CV_WRAP void setDistanceFunction (int distanceFunction)=0
k-meansで2点間の距離を測定するために使用される距離関数セレクタ。利用可能です。L0_25, L0_5,L1,L2L0_25, L0_5, , L2squared, L5, L_infinity.
- 基底クラス cv::Algorithm に属する継承公開メンバ関数
virtual CV_WRAP void clear ()
アルゴリズムの状態をクリアする[【詳解】(英語]
virtual void write (FileStorage &fs) const
アルゴリズムのパラメーターをファイルストレージに格納[【詳解】(英語]
CV_WRAP void write (const Ptr< FileStorage > &fs, const String &name=String()) const
これはオーバーロードされたメンバ関数です。利便性のために用意されています。元の関数との違いは引き数のみです。
virtual CV_WRAP void read (const FileNode &fn)
アルゴリズム・パラメータをファイル・ストレージから読み込みます。[【詳解】(英語]
virtual CV_WRAP bool empty () const
が空の場合はtrueを返します。Algorithmが空の場合は真を返します。[【詳解】(英語]
virtual CV_WRAP void save (const String &filename) const
virtual CV_WRAP String getDefaultName () const

静的公開メンバ関数

static CV_WRAP Ptr< PCTSignatures > create (const int initSampleCount=2000, const int initSeedCount=400, const int pointDistribution=0)
視差検索範囲を作成します。PCTSignaturesサンプル数とシード数を利用したアルゴリズム.サンプリングポイントとクラスター化シードインデックスのセットを独自に生成します.[【詳解】(英語]
static CV_WRAP Ptr< PCTSignatures > create (const std::vector< Point2f > &initSamplingPoints, const int initSeedCount)
視差検索範囲を作成します。PCTSignatures事前に生成されたサンプリングポイントとクラスター化シードの数を使ったアルゴリズム。提供されたサンプリングポイントを使用し、独自のクラスター化シードインデックスを生成します。[【詳解】(英語]
static CV_WRAP Ptr< PCTSignatures > create (const std::vector< Point2f > &initSamplingPoints, const std::vector< int > &initClusterSeedIndexes)
視差検索範囲を作成します。PCTSignatures事前に生成されたサンプリングポイントとクラスター化シードインデックスを使用するアルゴリズム。[【詳解】(英語]
static CV_WRAP void drawSignature (InputArray source, InputArray signature, OutputArray result, float radiusToShorterSideRatio=1.0/8, int borderThickness=1)
ソース画像にシグネチャを描画し、その結果を出力します。シグネチャは、シグネチャの重みに応じた半径とシグネチャの色に応じた色を持つ円として可視化されます。コントラストとエントロピーは可視化されません。[【詳解】(英語]
static CV_WRAP void generateInitPoints (std::vector< Point2f > &initPoints, const int count, int pointDistribution)
選択された点分布に基づいて初期サンプリング点を生成する。[【詳解】(英語]
- 基底クラス cv::Algorithm に属する継承静的公開メンバ関数
template<typename _Tp >
static Ptr< _Tp > read (const FileNode &fn)
ファイル・ノードからアルゴリズムを読み込む[【詳解】(英語]
template<typename _Tp >
static Ptr< _Tp > load (const String &filename, const String &objname=String())
ファイルからアルゴリズムを読み込む[【詳解】(英語]
template<typename _Tp >
static Ptr< _Tp > loadFromString (const String &strModel, const String &objname=String())
文字列からアルゴリズムを読み込む[【詳解】(英語]

その他の継承メンバ

- 基底クラス cv::Algorithm に属する継承限定公開メンバ関数
void writeFormat (FileStorage &fs) const

詳解

PCT(position-color-texture)シグネチャ抽出を実装したクラスで,[KrulisLS16]に記載されています.[KrulisLS16].. このアルゴリズムは,特徴抽出器とクラスタリング器に分けられます.特徴抽出器は,与えられた座標系におけるサンプルを生成します.クラスタライザは,k-meansアルゴリズムを用いて,これらのサンプルのクラスタを生成する.結果として得られたクラスターの集合が、入力画像のシグネチャとなる。

シグネチャはSIGNATURE_DIMENSION次元の点の配列です。使用される次元は,重み,x,y位置,Labカラー,コントラスト,エントロピーです.[KrulisLS16]. [BeecksUS10].

列挙型メンバ詳解

PointDistribution

ランダムポイントジェネレータによるポイント分布のサポート

列挙値
UNIFORM

一様に数字を生成します。

レギュラー

規則的な格子状に点を生成します。

通常 (NORMAL)

正規(ガウス)分布の点を生成します。

SimilarityFunction

類似関数セレクタ

参照
Christian Beecks, Merih Seran Uysal, Thomas Seidl. 署名二次形式距離. ACM International Conference on Image and Video Retrieval(ACM国際画像・映像検索会議)の議事録,ページ438-445.ACM, 2010.[BeecksUS10].
覚え書き
選択された距離関数に対して

\[ d(c_i, c_j) \]

とパラメータを指定します。

\[ \alpha \]

列挙値
MINUS

\[ -d(c_i, c_j) \]

ガウシアン

\[ e^{ -\alpha * d^2(c_i, c_j)} \]

ヒューリスティック

\[ \frac{1}{\alpha + d(c_i, c_j)} \]

関数詳解

computeSignature()

virtual CV_WRAP void cv::xfeatures2d::PCTSignatures::computeSignature ( InputArray image,
OutputArray signature
) const
pure virtual

与えられた画像のシグネチャを計算します.

引数
image CV_8U型の入力画像.
signature 計算されたシグネチャを出力します.

computeSignatures()

virtual CV_WRAP void cv::xfeatures2d::PCTSignatures::computeSignatures ( const std::vector< Mat > & images,
std::vector< Mat > & signatures
) const
pure virtual

複数の画像に対するシグネチャを並列に計算します.

引数
images CV_8U型の入力画像のベクトル.
signatures 計算されたシグネチャのベクトル.

create() [1/3]

static CV_WRAP Ptr< PCTSignatures > cv::xfeatures2d::PCTSignatures::create ( const int initSampleCount = 2000,
const int initSeedCount = 400,
const int pointDistribution = 0
)
static

視差検索範囲を作成します。PCTSignaturesサンプル数とシード数を利用したアルゴリズム.サンプリングポイントとクラスター化シードインデックスのセットを独自に生成します.

引数
initSampleCount 画像のサンプリングに利用される点の数.
initSeedCount 初期クラスター化シードの数。initSampleCount以下でなければなりません。
pointDistribution 生成された点の分布。デフォルトは UNIFORM。利用可能です。uniform, regular, normal.
戻り値
作成されたアルゴリズム.

create() [2/3]

static CV_WRAP Ptr< PCTSignatures > cv::xfeatures2d::PCTSignatures::create ( const std::vector< Point2f > & initSamplingPoints,
const int initSeedCount
)
static

視差検索範囲を作成します。PCTSignatures事前に生成されたサンプリングポイントとクラスター化シードの数を使ったアルゴリズム。提供されたサンプリングポイントを使用し、独自のクラスター化シードインデックスを生成します。

引数
initSamplingPoints 画像のサンプリングに使われるサンプリングポイント。
initSeedCount 初期クラスター化シードの数。initSamplingPoints.size()以下でなければなりません。
戻り値
作成されたアルゴリズム.

create() [3/3]

static CV_WRAP Ptr< PCTSignatures > cv::xfeatures2d::PCTSignatures::create ( const std::vector< Point2f > & initSamplingPoints,
const std::vector< int > & initClusterSeedIndexes
)
static

視差検索範囲を作成します。PCTSignatures事前に生成されたサンプリングポイントとクラスター化シードインデックスを使用するアルゴリズム。

引数
initSamplingPoints 画像のサンプリングに使われるサンプリングポイント。
initClusterSeedIndexes 初期クラスター化シードのインデックス。そのサイズはinitSamplingPoints.size()以下でなければなりません。
戻り値
作成されたアルゴリズム.

drawSignature()

static CV_WRAP void cv::xfeatures2d::PCTSignatures::drawSignature ( InputArray source,
InputArray signature,
OutputArray result,
float radiusToShorterSideRatio = 1.0/8,
int borderThickness = 1
)
static

ソース画像にシグネチャを描画し、その結果を出力します。シグネチャは、シグネチャの重みに応じた半径とシグネチャの色に応じた色を持つ円として可視化されます。コントラストとエントロピーは可視化されません。

引数
source 元画像。
signature 画像の署名
result 出力結果。
radiusToShorterSideRatio 出力画像内の署名の最大半径を決定する。
borderThickness 可視化された署名の境界線の厚さ

generateInitPoints()

static CV_WRAP void cv::xfeatures2d::PCTSignatures::generateInitPoints ( std::vector< Point2f > & initPoints,
const int count,
int pointDistribution
)
static

選択された点分布に基づいて初期サンプリング点を生成する。

引数
initPoints 生成された点が保存される出力ベクトル
count 生成する点の数
pointDistribution 点分布セレクタ 利用できるのは uniform, regular, normal.
覚え書き
生成される座標は範囲 [0..1)

setSamplingPoints()

virtual CV_WRAP void cv::xfeatures2d::PCTSignatures::setSamplingPoints ( std::vector< Point2f > samplingPoints )
pure virtual

入力画像をサンプリングするためのサンプリングポイントを設定します。

引数
samplingPoints サンプリングポイントのベクトルは、範囲 [0..1)
覚え書き
サンプリングポイントの数は、クラスター化のシードカウント以上でなければなりません。

setTranslation()

virtual CV_WRAP void cv::xfeatures2d::PCTSignatures::setTranslation ( int idx,
float value
)
pure virtual

特徴空間の各軸の平行移動。

引数
idx 並進のID
value 並進の値
覚え書き
weight_idx = 0; x_idx = 1; y_idx = 2; l_idx = 3; a_idx = 4; b_idx = 5; contrast_idx = 6; entropy_idx = 7;

setTranslations()

virtual CV_WRAP void cv::xfeatures2d::PCTSignatures::setTranslations ( const std::vector< float > & translations )
pure virtual

特徴空間の各軸の平行移動。

引数
translations すべての翻訳の値。
覚え書き
weight_idx = 0; x_idx = 1; y_idx = 2; l_idx = 3; a_idx = 4; b_idx = 5; contrast_idx = 6; entropy_idx = 7;

setWeight()

virtual CV_WRAP void cv::xfeatures2d::PCTSignatures::setWeight ( int idx,
float value
)
pure virtual

特徴空間の個々の軸を線形に伸ばすための重み(乗算定数)。

引数
idx 重みのID
value 重みの値
覚え書き
weight_idx = 0; x_idx = 1; y_idx = 2; l_idx = 3; a_idx = 4; b_idx = 5; contrast_idx = 6; entropy_idx = 7;

setWeights()

virtual CV_WRAP void cv::xfeatures2d::PCTSignatures::setWeights ( const std::vector< float > & weights )
pure virtual

特徴空間の個々の軸を線形に伸ばすための重み(乗算定数)。

引数
weights すべての重みの値
覚え書き
weight_idx = 0; x_idx = 1; y_idx = 2; l_idx = 3; a_idx = 4; b_idx = 5; contrast_idx = 6; entropy_idx = 7;

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