6

この質問には、どのような種類のプログラミング言語でも答えることができます。なぜなら、アルゴリズムの助けが必要だからです。しかし、私は Delphi の方が好きです。ランダムな画像の複数の形状 (1 から N - ほとんどが円形または楕円形) を検出してカウントし、それらの中央を計算して画像の座標として返すというタスクがあります。各形状の中央には塗りつぶしを入れることができます (ただし、問題ありません)。形状は、互いに少なくとも 1 ピクセル以上離れています。どの形状も、別の形状や写真の隅に溶け込むようなものではありません。画像の背景には常に同じ背景色がありますが、実際には問題ではありません。これは、図形の境界線/フレームが背景と比較して常に異なる色であるためです。これにより、形状の検出が容易になります。ピクセルごとに行って座標を収集し、すべての形状の周りに目に見えない長方形/正方形のように描画して、中央を計算することを考えていました。その後、スキャンラインについても聞きましたが、この場合は高速になるとは思いません。だから私の質問は、どのように計算できるかです:

  1. 絵の中にいくつの形がありますか。
  2. それらの正確な中央を(多かれ少なかれ)どのように計算できますか。

タスクを視覚化するためのいくつかの写真:

これはランダムな形状 (ほとんどが円) の写真です。

写真の中の形

次に、すべての形状の周りに架空の長方形/正方形を簡単に描画/計算し、その中央を次のように計算できます。 周囲に長方形/正方形がある画像内の形状

長方形/正方形を取得した後。真ん中は簡単に計算できます。どうすれば始められますか?

PS .: mspaint でいくつかの円を描きました。すべての図形が閉じていることを付け加える必要があります。これにより、画像内のすべての図形を問題なく塗りつぶすことができます。

ご協力ありがとうございました。

4

1 に答える 1

0

画像の MSER (最大安定極値領域) を計算します。ここでそのアルゴリズムを説明することはできません。アルゴリズムの詳細については、最大安定極限領域の記事を参照してください。

それはあなたにも重心を与えます。

このアルゴリズムは、OpenCv ツールと Matlab 2012b の組み込み関数として実装されています。

私が考えることができ、おそらく以前の方法よりも簡単な別の方法は、連結成分アルゴリズムを適用し、オブジェクトの数をカウントすることです.

于 2013-01-24T16:11:07.340 に答える