1

OpenCV と C++ を使用していくつかの画像行列の LBP ヒストグラムに取り組んでおり、これらの行列の LBP(1,8) と LBP(2,16) を計算する必要があります。OpenCV の最新バージョンでは、デフォルトの LBP(1,8) 演算子を使用して LBP FaceRecognizer を計算することが直接サポートされており、オブジェクトのインスタンス化中に値を設定することで LBP(2,16) を計算できます。

私の質問は、どのマトリックスが特定の入力マトリックスの LBP コードを格納するかということです。実装を深く掘り下げると、 predict(InputArray _src)関数が最初に elbp(src, _radius, _neighbors)を呼び出してから、 spatial_histogram(/ params /)を呼び出してヒストグラムを計算することがわかりました。しかし、これらの関数のどのマトリックスが LBP コードを格納するのでしょうか??

基本的に、これら 2 つの関数 ( elbp() と spatial_histogram() ) は実際に何を計算するのでしょうか?

前もって感謝します。

4

1 に答える 1

1

トレーニング予測ステップを見ると、両方のワークフローが次のようになっていることがわかります。

  • 画像全体の lbp 特徴を収集する (elbp)
  • lbp-image を nxn パッチに分割し、各パッチのヒストグラムを収集し、それらを 1 つの大きなヒストグラム (spatial_histogram) に連結します。

補足: 16 近傍のオペレーターの有用性については疑問があります。パッチごとに 64k のヒストグラム ビンが必要です。img が 100x100 と 8x8 パッチのみの場合、パッチ/ヒストグラムごとに 144 ピクセルしかありません。それは非常にまばらなものになります。そしてあなたの特徴空間は爆発します!-少ない方が多いかもしれません!

頑張って、ハッキングをお楽しみください!

于 2013-09-28T11:59:43.617 に答える