6

OpenCVの実装における確率的ハフ変換の特定のアルゴリズムを知っている人はいますか? つまり、アルゴリズムに関する参考文献やドキュメントはありますか?

アイデアを得るために、確かにソースコードを調べることができますが、それに関するドキュメントがあるかどうか疑問に思います. -- ソース コードのコメントにはありません (OpenCV 1.0)。

ありがとうございました!

-ジン

4

5 に答える 5

7

OpenCV のドキュメントには、このアルゴリズムは、J Matas らによる「プログレッシブ確率ハフ変換を使用した行のロバスト検出」に基づいていると記載されています。これは、ウィキペディアで説明されている RHT とはかなり異なります。

この論文はインターネット上で無料で入手できるようには見えませんが、Elsevier から購入できます。

于 2011-06-03T14:31:39.720 に答える
2

OpenCV 2.4.4のソース コードにはHoughLinesProbabilistic、関連するさまざまな手順を説明するインライン コメントが含まれています。

https://github.com/Itseez/opencv/blob/master/modules/imgproc/src/hough.cpp

于 2013-03-17T20:12:40.253 に答える
1

これは、Matas et.al によるかなり簡潔な論文です。それはアプローチを説明しており、他の人が述べたように、実際にはランダム化されたハフ変換とはまったく異なります。

http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.40.2186&rep=rep1&type=pdf

(ただし、このリンクがいつまで有効かはわかりません。これは citeseer によるものです。明日には消えるとは思わないでしょうが、誰にもわかりません...)

hough.cpp の icvHoughLinesProbabilistic() の実装を簡単に調べました。これを使用するためです :-) それはかなり簡単に思えますが、とにかく、私の主な関心は、最終的に最小二乗法によるライン フィッティングを行うかどうかでした。そうではありません。正確な線分を取得する必要がある場合は、OpenCV によって返される始点/終点および暗黙の線パラメーターを使用して、ポイントセット全体から関連するポイントを選択することをお勧めします。最初はかなり保守的な距離しきい値を使用し、これらのポイントに対してより小さなしきい値で RANSAC/MSAC を実行します。最後に、通常どおり、たとえば OpenCV の cvFitLine() を使用して、ラインをインライア セットに合わせます。

于 2014-03-20T19:58:33.167 に答える
1

セクション 6の記事「ハフ変換による線検出」が役立ちます。

于 2012-11-09T10:20:07.757 に答える
-1

これは、OpenCV http://en.wikipedia.org/wiki/Randomized_Hough_Transformで使用される「確率論的ハフ変換」と同じであると私が信じているランダム化ハフ変換に関する記事です 。

基本的に、すべてのポイントのアキュムレータを埋めるのではなく、ハフ変換を満たす特定の基準を持つ一連のポイントを選択します。

その結果、最初から十分なポイントがなかった場合、実際のラインを見逃すことがあります。ほとんどのポイントが冗長になるように、ある程度直線的な構造がある場合は、これを使用したいと思うでしょう。参照番号 2: L. Xu、E. Oja、および P. Kultanan、「新しい曲線検出方法: Randomized Hough transform (RHT)」、Pattern Recog. レット。11、1990、331-338。

また、アルゴリズムが 2 つのポイントを取り、それらの 2 つのポイントの中間にあるポイントを計算する、かなり異なるアプローチについても読みました。ポイントがエッジ ポイントの場合、そのラインのビンを蓄積します。これは明らかに非常に高速ですが、開始するのに十分なエッジポイントがない場合、行を見逃す可能性があるため、やや疎でない行列を想定します。

于 2010-12-14T22:15:09.657 に答える