画像上のラインを見つけるための超高速アルゴリズムはありますか?
-
25-09-2019 - |
質問
だから私はこのような画像を持っています
(ソース: de-viz.ru)
このようなものを取得したいです(私は必要な線をすべて描くことができませんでしたが、私のアイデアを理解していただければ幸いです)
(ソース: narod.ru)
すべての直線を見つけるための超高速アルゴリズムが必要です。最小長や最大線歪みなどのアルゴリズムパラメータを与えたいと考えています。画像のピクセル座標からの相対的な線の開始点と終了点を取得したいと考えています。
この図では、タイル間のすべての線とその上の 2 つの黒い線を見つけます。
したがって、画像上でさまざまな色の直線を超高速に見つけるアルゴリズムが必要です。
そのようなアルゴリズムはありますか?(超高速=)
解決
Canny エッジ検出、Marr-Hildreth エッジ検出、ガウス フィルタリング、ハフ変換などの高度な画像処理方法を使用する必要があります。
しかし、「超高速」方法が存在する可能性は非常に低いです。
ほとんどの画像処理アルゴリズムの最小複雑さは少なくとも O(N^2)
.
「超高速」というのは、せいぜい O(1)
;)
役に立つかもしれないいくつかのリンク:
他のヒント
私は、あなたがA ハフの変換が必要だと思うか<のhref = "のhttp:// en.wikipedia.org/wiki/Radon_Transform」のrel = "noreferrer">ラドンはの変換。私がリンクした記事を読み、ご質問をお気軽に:)
輪郭ドットアルゴリズムは http://outliner.codeplex.com/するで説明を検討 これはストロークに編成ベジェ曲線の形のベクトル記載エッジを生成します。 あなたが最もstraighストロークを選択するいくつかの努力を必要とする(エンドポイントが使用する準備が整いました)。 このalgoritms非常に高速ではなく、超大型のです。
私はそれがあなたのアプリケーションで動作する方法をよく知っていないが、あなたはのいくつかの並べ替えを試してみてくださいエッジ検出のアプローチ。わからないことは、あなたが探しているものだが、これが起動する場所であるかもしれない場合には、ベクター中にこれらのエッジを変換する方法。とにかく、エッジ検出アルゴリズムの一部(例:離散ラプラス演算子には)modermにかなり速いですアーキテクチャを計算ます。
ああ、あなたがそれを行う場合、あなたはおそらくのYCbCrするに画像を変換したいですちょうど輝度(Y)成分を使用します。それはまた、高速動作です。