28

この論文に基づいて 、ハフ変換を使用して長方形検出を実装しようとしています。

Matlab を使用してプログラムしましたが、平行ペア線と直交ペア線を検出した後、これらのペアの交点を検出する必要があります。私の質問は、ハフ空間における 2 つの線の交点の質についてです。

4 つの方程式系を解いて交点を見つけました。これらの交点はデカルト座標空間または極座標空間にありますか?

4

4 に答える 4

7

紙について疑問に思っている人のために、それは次のとおりです。

Cláudio Rosito Jung と Rodrigo Schramm によるウィンドウ処理されたハフ変換に基づく四角形の検出。

紙によると、交点は極座標として表されますが、明らかに実装が異なる場合があります (唯一の方法は、コードを表示することです)。

彼の表記法と一致していると仮定すると、ピークは次のように表現されます。

ピーク

次に、セクション 4.3 の式 (3) で与えられるピーク ペアリングを実行する必要があります。

式3

ここでT_シータ、平行線に対応する角度しきい値を表し、ここに画像の説明を入力同様の長さの線に対応する正規化されたしきい値です。

于 2009-11-05T21:41:17.487 に答える
4

ハフ空間の精度は、2つの主な要因に依存する必要があります。

アキュムレータはハフ空間にマッピングされます。アキュムレータ配列をループするには、アキュムレータがハフ空間を個別のグリッドに分割する必要があります。

線形ハフ空間の精度の2番目の要素は、元の画像の原点の位置です。\ rhoの特定の変更に対して、\ thetaのスイープを実行すると、何が起こるかを確認してください。原点の近くでは、これらのスイープの1つは、画像のエッジ近くのスイープよりもはるかに少ないピクセルをカバーします。これは、デカルトに戻すときに同じレベルの精度を達成するために、画像のエッジの近くでアキュムレータにはるかに高い\ rho\theta解像度が必要になるという結果をもたらします。

もちろん、解像度を上げることの問題は、解像度を上げるためにより多くの計算能力とメモリが必要になることです。また、アキュムレータの解像度を均一に上げると、必要のない原点付近の解像度が無駄になります。

これを助けるためのいくつかのアイデア。

  1. 原点を画像の真ん中に置きます。コードで画像の自然な左下または左上を使用するのとは対照的です。
  2. 正方形に到達できる最も近い画像を使用してみてください。特定の領域の画像が長く なるほど、エッジでの解像度トラップがより顕著になります
  3. 画像を4/9/16などの異なるアキュムレータに分割してみてください。それぞれのアキュムレータは、そのサブ画像の中央に原点があります。長方形を検出するために各アキュムレータの結果をリンクするには少しオーバーヘッドが必要ですが、解像度をより均等に広げるのに役立ちます。
  4. 最終的な解決策は、原点からの距離に応じて解像度を直線的に上げることです。これは、

    (x-a)^2 + (y-b)^2 = \rho^2

circle equation where
    - x,y are the current pixel
    - a,b are your chosen origin
    - \rho is the radius
once the radius is known adjust your accumulator
resolution accordingly. You will have to keep
track of the center of each \rho \theta bin.
for transforming back to Cartesian
于 2009-11-14T06:19:00.047 に答える
1

参照されている論文へのリンクは機能しませんが、標準のハフ変換を使用した場合、4 つの交点はデカルト座標で表されます。実際、ハフ変換で検出された 4 本の線は、「通常のパラメーター化」を使用して表現されます。

rho = x cos(theta) + y sin(theta)

したがって、4 つの線を識別する 4 つのペア (rho_i、theta_i) ができます。直交性をチェックした後 (たとえば、角度 theta_i を比較するだけで)、次の形式の 4 つの方程式系を解きます。

rho_j = x cos(theta_j) + y sin(theta_j)
rho_k = x cos(theta_k) + y sin(theta_k)

ここで、x と y は交点のデカルト座標を表す未知数です。

于 2009-11-05T07:52:34.903 に答える
0

私は数学者ではありません。私は正直に立って喜んでいます...ハフから2)... xy平面上の任意の線は、 p = x cos theta + ysintheta
として記述できます。この表現では、pは法線距離、thetaは直線の法線角度です。実際のアプリケーションでは、角度thetaと距離pが量子化され、配列C(p、theta)が得られます。 CRC標準数学テーブルから解析幾何学、平面セクションの極座標...このような順序付けられた数のペア(r、theta)は、点pの極座標と呼ばれます。直線:p = Oからの線の距離、w=OXからOから線への垂線までの反時計回りの角度とします。正規形:r cos(theta --w)= p
。このことから、点は極座標空間にあると結論付けます。

于 2009-10-03T03:44:20.913 に答える