2012-02-16 9 views
22

私は画像処理に慣れていません。文書画像のラインを検出する作業をしています。私はハフライン変換の理論を読んだが、なぜ多くのチュートリアルで言われているようにopencvでその関数を呼び出す前にCannyを使わなければならないのか分からない。この場合、エッジを見つけるのは何ですか?事実、私がHoughLines()の前にCannyやthresholdを使用しないと、結果が非​​常に乱雑になります。誰かが私に理由を説明することを願っています。あなたはbooleanマトリックス画像(またはバイナリ)で作業する必要がある行を検出するために、すべてのHoughLines(opencv)より前のCannyの使い方は?

  1. Imgproc Feature Detection
  2. Hough Line Transform
+0

あなたが参照する「多くのチュートリアル」の1つに、最小の実例とリンクを提供してください。 – Unapiedra

+1

リンクありがとうございます! – Unapiedra

答えて

9

短い答え

cvCannyは、エッジを検出、並びに、コントラストを高め、画像のノイズを除去するために使用されます。 Hough Transformを使用するHoughLinesを使用して、これらのエッジがラインであるかどうかを判断します。ハフ変換では、効率的で意味のある結果を得るためにエッジを適切に検出する必要があります。 Hough Transform

ロング回答

制限はウィキペディアに詳細に記載されています。ハフ変換(Hough Transform)の効率は、累積された画素のビン(bin)が別個であることに依存している(例えば、特許文献1参照)。画素とその周辺の隣接画素との間の直接コントラスト、またはマスク領域と画素領域とその周辺領域とを使用する場合には、すべてのピクセルが類似した値を持つ場合、線や円としては何も目立たないでしょう。これは、契約を増やすために色(グレースケールからグレースケール、黒と白まで)を減らすことにつながります。

ハフ変換のパラメータ数は、ピクセルビン内の投票の広がりを増加させ、変換の複雑さを増加させます。これは、通常、3つ未満のパラメータを持つため、線や円のみが確実に検出される。

ハフ変換を実行する前にエッジを検出する必要があります。そうでないと、効率がさらに悪くなります。また、ノイズが手前で除去されない限り、ノイズの多い画像はハフ変換でうまく動作しません。

+0

私は参照してください。私は私の悪い英語を残念に思っています。あなたの非常に分かりやすい答えをありがとう。 – Risa

9

まず、私が読んだのチュートリアルの

2つまり、色はまたはです。グレースケールはありません。

HoughLines()正しく動作させるには、この種の画像を入力する必要があります。これはのブール値に変換されたイメージマトリックスをに変換するために、CannyまたはTresholdを使用する必要がある理由です。

ハフ変換

つのピクチャの行は、実際のエッジです。ハフ変換は画像全体をスキャンし、すべてを変換する変換を使用します極座標のデカルト座標です。 ブラックピクセルは除外されます。 HoughLines()はグレースケールがあるときの振る舞いを知らないので、最初にエッジを検出しないと線を得ることができません。

+0

私は今それを得る。ありがとうございます:> – Risa

-2

全ては、バイナリデータの処理について

複素データである - >(バイナリデータ、Bバイナリデータ、バイナリデータC、...)()(キャニー、ソーベル()などを使用して)

バイナリデータ - >はfunction1()(使用houghlines())バイナリデータB

- >機能2()

バイナリデータC - >関数3()..

バイナリデータ-X - > functi ON2()..

複雑なデータ-X->はfunction1()..

HTH

1

理論的には、あなたは正しいです。ハフラインアルゴリズムが機能するには、エッジを見つけることは絶対に必要なわけではありません。

ハフの仕組みは、基本的にあらゆる点を取り、それを他のすべての点に接続します。そして、どの点にも最も多くの線が通っていれば、それらの線が残ります。このためには、ポイントが必要です。キャニーはこれらのポイントを作成します。理論的には、あらゆる種類のフィルターを使用することができます - 青色または紫色の点をすべて分離し、それらを接続しますが、エッジはうまく機能します。

ハフはまた、その線や点を重み付けしません。ハフには、イメージはバイナリです - 1または0のポイント、またはポイントではありません。グレースケールの必要はなく、便利なことにバイナリイメージが返されます。

したがって、ハニーのCannyは常にこの部分です。

関連する問題