5

私は携帯電話の画像の角を検出する良いalgorihtmを見つけようとしています。これを行うには複数のアルゴリズムがありますが、メモリとプロセッサが制限された環境でどれがより優れたパフォーマンスを発揮するかはわかりません。

具体的には、携帯電話のカメラを使って撮影した写真から数独グリッドを見つけようとしています。C#を使用していますが、基本的な画像処理機能を備えたライブラリが見つかりませんでした。エッジ検出を行うためにSobelフィルターを実装しました。それが、私が立っているところです。

問題を明確にするために、特定のアルゴリズムまたはライブラリを使用するための提案はありますか?

4

3 に答える 3

2

「コーナー検出」自体がこれを行うための非常に良い方法であるとは言えません。一歩下がって、数独グリッドの写真について考えてみてください。物事を単純化するために、おそらく多くの仮定を立てることができます。

たとえば、数独グリッドは常にまったく同じように見えます。

  • 白い四角
  • 9x9レギュラーグリッド

HSV色空間で画像を処理すると、明度の高い領域(白っぽい色)を探すことができます。RGBは、ほとんどの画像処理技術に適しています。

画像をしきい値処理すると、ノイズが減少するはずです

最初に画像のヒストグラムを調整すると、グリッドが白くなる可能性があるため、より良い結果が得られる場合があります(ただし、画像によって異なります)。

その後、あなたがしなければならないのは正方形を見つけることです。グリッドがその中で規則的であることがわかっているので、それに応じてピクセルを分割し、の数字で正方形をOCRすることができます。

:D

于 2009-07-20T08:49:38.620 に答える
2

通常の9x9グリッドを探しているので、ハフ変換を検討してください。1つの方法は、最初にエッジ検出器を実行し、元のハフ変換を使用してすべての直線を見つけてから、それらのどれがグリッドを形成するかを把握することです。または、グリッド全体をパラメーター化するための賢い方法を考え出すことができるかもしれません。

于 2009-07-27T04:21:33.403 に答える
1

私はOpenCVが画像の処理に非常に役立つことを発見し、かなり平均的なプログラマーとして自分自身を評価します。

これは、OpenCVでコーナー検出を行う例(C ++ですが、おそらく移植できます)です。

于 2009-07-20T22:42:07.140 に答える