問題タブ [hough-transform]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
718 参照

computer-vision - ハフ変換座標からの効率的な線

私はハフ変換(極座標)を使用しています。ハフ変換の座標から直線のベクトル表現を計算したいと思います。

私の現在の実装は、(0,0)から(M、N)までの画像内のすべてのピクセル座標をループします。ここで、MとNは画像のサイズです。ループがスペースを通過すると、この値が計算されます。

//角度とrhoは、ハフ空間からの極座標です。

tmp =(int)((i * cos(angle))+(j * sin(angle)));

ここで、tmp --rho == 0は行の一部なので、その位置を追跡します。ループが画像の終わり(i、j)==(M、N)に達すると、ループは(M、N)から(0,0)の反対方向に再び実行されます。

最初の(tmp-rho == 0)は左から右に移動し、2番目の(tmp-rho == 0)は右から左に移動する線の座標です。次に、それらのピクセル座標を減算して、ハフ空間の線のベクトルを取得します。

これはひどく非効率的(遅い)であり、これを計算するためのより良い方法があると100%確信していますが、私はそれを理解できないようです。どんな助けでも大歓迎です!

0 投票する
1 に答える
1299 参照

c - ハフ変換を使用して線を見つけますが、これらの線で見つかった点も追跡する必要があります

これは実際には 2D の問題ではなく、実際には 3D の問題を単純化したものです。したがって、それは単純な画像分析の問題ではありません。

3D サーフェス マップのレンダリングに使用する 2D ポイントのセットがあります。すべてのポイントを頂点として描画することもできますが、これらのポイントの多くが、はるかに簡単にレンダリングできる線やその他の単純な形状を形成するため、これは無駄です。OpenCV でハフ変換を使用して、これらの行を見つけることができます。ただし、OpenCV 関数は、セット内のどのポイントがこれらの線上にあるかを教えてくれません。

ハフ変換で見つかった線上にない点のサブセットを知る必要があるので、それらを頂点としてレンダリングするか、*そうであるためレンダリングしないことがわかっています。

つまり、描画する必要がなくなった頂点をどうにかして除外できなければ、簡略化された形状を見つけても意味がありません。

別の詳細: アプリケーションは、レンダリングする必要がある場合とない場合がある新しいポイントを常に追加しています。必要に応じてポイントの完全なセットでハフ変換を再実行できると思いますが (レンダリング フレームごとに 1 回)、画像が必ずしもそれほど変化しないため、これも非効率的です。問題にアプローチする別の方法はありますか?

0 投票する
3 に答える
5700 参照

python - Python で OpenCV HoughCircles の結果にアクセスするにはどうすればよいですか?

虹彩関連のバイオメトリクスの概念実証アルゴリズムを開発しています。一連の画像でテストできるようにしたいのですが、そのためには虹彩の境界を知る必要があります。ここで使用されている手法に従って、画像をフィルタリングし、インテリジェントにしきい値処理を行いました (Otsu の方法)。これにより、瞳孔のくまだけが残ります。OpenCV の方法を使用しようとしましHoughCirclesたが、C(++) 以外のドキュメントはまばらです。このセクションのこれまでのコードは次のとおりです。

最後の行が問題の行です。インターネット上に散らばるいくつかの投稿 (そのほとんどは C/C++ または 5 年以上前のもの) をたどり、なんとかその行を思いつきました。エラーは返されません。結果にアクセスするにはどうすればよいですか? またはにアクセスしますcirclesstorage。それらにアクセスするにはどうすればよいですか? この質問からの提案を試しましたが、質問者が言ったように、cvMat型は反復可能ではないため、機能しません。このライブラリのまばらなドキュメントを処理するよりも、独自の Circular Hough Transform を作成する方が作業が少ないように思えますが、欠けている単純なものだと思います。

余談ですが、パラメータを最適化して、適切な時間内に常に瞳孔に適合する円を返すにはどうすればよいですか?

0 投票する
1 に答える
1985 参照

image-processing - 円を検出してピクセルを測定する

ここに画像の説明を入力

この画像では、車両のリムを検出し、画像処理によってリムのピクセル長を測定する必要があります。円については、円形のハフ変換に従うべきだと思います。リムの幅を取得するための手順を教えてください。ex(グレースケール->エッジ検出、またはこれに関するその他のコメント)

0 投票する
3 に答える
10216 参照

c# - 画像内の長方形を検出するアルゴリズムを見つけようとしています

現時点では、画像内のエッジを検出しており、ハフ変換を使用してエッジから線分を抽出することを計画しています。セグメントを取得したら、2 つのセグメントが交差するコーナーを見つけることを計画しています。角から長方形を検出できるアルゴリズムはありますか? 4 つの角が検出されたとします。長方形に 4 つの直角があることを知って、4 つの角が構成する長方形の辺の相対的な長さを取得することは可能ですか?

これを行う理由は、四角形で囲まれたテクスチャを抽出し、画面上で平らな四角形として描画できるようにするためです。

編集:これまでの回答に感謝します。少し誤解されていると思うので、問題をより明確に説明する必要があると思います。私は実際に歪んだ長方形を平らな長方形に変換しようとしています。私はいくつかの aforge 記事を読み、この機能を見ました: link。四隅だけで四角形の辺の比率がわかるのかな?

0 投票する
3 に答える
25920 参照

android - Android OpenCV ハフ線の描画

AndroidフォンでOpenCVを使用して回線を検出しようとしています。「Tutorial 1 Basic - 2. Use OpenCV Camera」のサンプルを修正しました。また、例としてHough Line Transformを使用しています。ただし、ポイントに対して奇妙な数字(少なくとも私が信じているものは奇妙な数字)を取得しています。b の範囲は 1000 から -1000 です。

コードを完全には理解していません (ほとんどの場合、1000 * (a または -b) の加算/減算に関する部分)。

結局、線はまったく見えません。

誰か手を貸してくれませんか?また、さらに情報が必要な場合はお知らせください。

0 投票する
2 に答える
1139 参照

image-processing - 円の半径を見つけるのが難しい

http://imageshack.us/photo/my-images/189/unledgev.png/

この円の半径を見つけるのに問題があります。元の画像をグレースケールに変換し、エッジ検出操作を実行しました。Aforge.net API を使用して、サーキュラー ハフ変換をこのエッジ イメージに適用しました。しかし、ハフ変換を適用する前に、見つけたい円の半径を指定する必要があります。問題は、車両のホイールの円の半径または直径を見つける必要があることです。誰かアイデアはありますか?

0 投票する
1 に答える
611 参照

c# - 三次元ハフ空間変換

円の未知の半径を検出する 3 次元のハフ空間を実装する必要があります。2次元ハフ空間を実装しました。実際には、画像内の円の半径を見つける必要があります。どこから始めればいいのか教えてもらえますか?

0 投票する
1 に答える
1006 参照

matlab - MATLAB で類似の三角形の方向を特定する

同様の三角形のBW ビットマップがあります。各三角形が向いている方向を特定しようとしています。「面する」とは、すべての三角形で一定の方法で方向を記述することを意味します。たとえば、最長辺の中央値の方向です。

これまでのところ、三角形を個別に識別できましたが、各三角形の方向を見つけるための最良の方法はわかりません。

最初のアイデアとして、ハフ変換を使用して、個々の三角形の辺に線を当てはめることを考えました。3 つの辺を取得したら、それらの交点を計算して、3 つの頂点の座標を取得します。3 つの頂点から、最も長い辺の中央値を簡単に見つけることができます。

このアプローチに関する私の問題は、ハフ変換を使用したことがなく、交差を計算するために使用できる方法で辺を見つけて返す関数を書くのがどれほど難しいかわかりません。いくつかの記事にリンクするか、ハフ変換を使用して、交点の計算に使用できる表現の側面を見つける方法を簡単に説明してもらえますか?

私の他のアイデアは、ハフ変換によって側面を認識せずに、ビットマップ画像で直接回転不変モーメントを使用することです。

この解決策に関する私の問題は、モーメントを使用して方向を説明するときに、方向の「意味」が何であるかがわからないことです。不変モーメントを使用する場合、参照方向を定義するにはどうすればよいですか?

識別されたオブジェクトを含むサンプル画像: サンプル

単一のオブジェクト サンプル1