4

輪郭の境界矩形を見つけるアルゴリズムを実装したいと思います(すでに別のアルゴリズムによって決定されています)。私が持っている唯一のものは、二値化された画像です(以下に示すように)。基本的な考え方は次のとおりです。

  • このようなものを取る - 前処理された二値化された画像 ここに画像の説明を入力

  • そしてこのようなものを作ります ここに画像の説明を入力

4

5 に答える 5

4

接続されたコンポーネントのラベル付けを確認してください: http://en.wikipedia.org/wiki/Connected-component_labeling . この場合、白ピクセルまたは黒ピクセルの連結成分を見つけることができます (画像内の白点が少ないため、白の方が計算が簡単です)。

于 2012-01-14T06:25:59.770 に答える
1

最初に素朴なアプローチを提案できますか:

イメージで、イメージの中間点 (x,y) の 2D 二分探索を実行します。その時点から、フラッド フィルを実行します。

  • 塗りつぶされた Figure の境界がイメージの境界ではない場合、閉じた Figure が見つかったため、その境界ボックスが見つかりました。

  • 画像全体を埋める場合は、何もヒットしていないので、画像を 4 つの cuadrants に分割し、同じことを再帰的に行います。(以前に見つかったバウンディング ボックスの図の内側にあるポイントをチェックする必要はなく、その過程で検索スペースが削減されます)。

于 2012-01-14T04:38:49.153 に答える
0

各要素について:

They highest y - 1 is the top of the rectangle. 
The leftmost x - 1 is the left of the rectangle. 
The lowest y + 1 is the bottom of the rectangle. 
The rightmost x + 1 is the right of the rectangle.

最高とは、最大値ではなく、画面の上部に最も近いことを意味することに注意してください。

于 2012-01-14T04:41:07.707 に答える
0

OpenCV には、既に実装されている輪郭の境界ボックスを見つけるためのアルゴリズムがいくつかあるようです。したがって、それらの機能がどのように機能するかを調べることは、開始する良い方法かもしれません. http://opencv.itseez.com/doc/tutorials/imgproc/shapeescriptors/bounding_rects_circles/bounding_rects_circles.html

于 2012-01-14T04:49:07.237 に答える
-1

最小スパニング ツリーを計算し、最長のエッジを削除できます。次に、k-means を計算できます。もう 1 つの長いエッジを削除し、k-means を計算します。N=10になるまで、すすいで繰り返します。このアルゴリズムはシングルリンク k-means と呼ばれ、クラスターはボロノイ図に似ていると思います。

「単一リンクの k クラスタリング アルゴリズムは ... まさに Kruskal のアルゴリズムです ... MST を見つけて、k-1 個の最も高価なエッジを削除するのと同じです。」

ここで例を参照してください: https://stats.stackexchange.com/questions/1475/visualization-software-for-clustering

次に、クラスタごとに次のルールを適用します。

They highest y - 1 is the top of the rectangle. 
The leftmost x - 1 is the left of the rectangle. 
The lowest y + 1 is the bottom of the rectangle. 
The rightmost x + 1 is the right of the rectangle.

最高とは、最大値ではなく、画面の上部に最も近いことを意味することに注意してください。

于 2012-01-14T07:45:46.310 に答える