3

画像内の髪の毛を線として検出することに成功しました。出力画像が各髪の毛を線として検出していることがわかります。cvHoughLines2()メソッドパラメータをとして使用しますCV_HOUGH_PROBABILISTIC

今、私はこれらの行を数えたいと思います。出力画像は、各髪に1本または2本の線を示しています。各線は小さな線分で構成されていることがわかります。そのため、それらの総数を直接取得することは困難です。これに関する提案はありますか?

ありがとう、プラディープ

4

2 に答える 2

0

hough関数は、OpenCV2のベクトルまたはOpenCV1のCvSeqを返す必要があります。あなたは簡単にそれらの長さを取得し、それらを反復することができます。詳細については、OpenCVドキュメントのサンプルコードを参照してください。

于 2011-01-08T21:54:13.433 に答える
0

実際には、Canny エッジ検出器を使用したほうがよい場合があります。あなたの説明から、ハフ変換よりもいくつかの重要な利点があるようです。

  • 直線だけでなく、任意の形状の輪郭にも反応します。
  • ノイズリダクションと非最大抑制を実行して、応答を最小限に抑えます。と
  • エッジを「トレース」または「固める」ために、より緩いしきい値で 2 番目の検出を行います。

適切なパラメータがあれば、1 本の連続した線で各毛髪を一意に検出できる可能性があります。

これは、関数内の OpenCV で実装されていcvCanny()ます。threshold1パラメータとパラメータ (3 番目と 4 番目の引数) の値threshold2をいじって、検出とトレースを試してみてください。

実際に線を数えることに関しては、これにどのようにアプローチするのが最善かはわかりませんが (Canny 出力は、Hough 変換出力とは多少異なる形式です)、断片化された線のセットよりも、一意のソリッド エッジを使用する方が簡単であることに気付くかもしれません。パラメーター。

于 2010-01-13T13:51:24.217 に答える