1

モノクロビットマップが与えられた場合:

000000000000000000000000000000000000000
001000100000000000000000000000000000000
000101000000000000000000000000000000000
000010000000001000000000000000000000000
000101000000010100000000000000000000000
001000100000100010000000000000000000000
000000000000010100000000000000000000000
000000000000001000000000000000000000000
000000000000000000000000000000000000000
000000000000001111110000000000000000000
000000000000001000010000000000000000000
000000000000001000010000000000000000000
000000000000001111110000000000000000000
000000000000000000000000000000000000000
000000000000000000000000000000000000000
000000000000000000000000000000000000000

ビットマップ上の各オブジェクトの外接する長方形を見つけられるようにしたい。

使用できる確立されたアルゴリズムはありますか?

4

3 に答える 3

3

あなたが探しているのは「ブロブ」検出と呼ばれ、周囲の領域から目立つオブジェクトのグループを検出します。必要な複雑さに応じて、面積、凸面、周囲長、バウンディングボックスなどを追跡することもできます。ブロブは、多くのマシンビジョンおよび検査アプリケーションで使用されます。

Wikiなどには確立されたアルゴリズムがたくさんあります。

調べることができる画像処理ライブラリもあります。頭に浮かぶのはAForgeと呼ばれるものです。これはC#で記述されたオープンソースライブラリです:aforge.net

または、「ブロブ検出」を検索するだけで、必要な情報がたくさん見つかります。

幸運を!

于 2009-07-22T02:05:57.730 に答える
0

MATLABにアクセスできる場合は、regionprops関数のソースを確認できます。バウンディングボックスの検索など、多くのことを行います。

基本的に、それらが属する連結成分に従ってすべてのピクセルにラベルを付ける必要があります。次に、各ピクセルの最小および最大のX座標とY座標を取得できます。

于 2009-07-22T02:06:46.903 に答える
0

私がすることは、任意のラベリングアルゴリズムを調べることです。実装が簡単なのは「Run-Track」アルゴリズムです。次に、ラベル付けが完了すると、ラベル付けされた各オブジェクトの(上、左、右、下)極端なピクセルを見つけることができます。これは(画像を複数回スキャンするため)最速の方法ではないかもしれませんが、実装は簡単です。

これは、RTアルゴリズムを(互いに)説明する講義スライドです:http ://www.cvl.isy.liu.se/Education/UnderGraduate/TSBB08/DBgrk7.pdf

于 2009-07-24T11:10:32.007 に答える