2011-01-24 13 views
8

画像の最初の25%より遠くのものを除外した深度ヒートマップの画像があります。画像内の色の塊を検出する

それはこのようなものになります。 enter image description here

画像における色の2つの塊がありますが、一つは(その背後にある私の顔の部分に)私の手であり、他方は、左下にある机でありますコーナー。これらのブロブを見つけるために画像をどのように検索できますか?可能であれば、それらの周りに長方形を描くことができるようにしたいと思います。

私も、これは(色合いを無視し、そして黒または白にフィルタリングする)行うことができます。画像は実際には2つ以上の異なる色(色の間の非常に少ないぼかし)である enter image description here

答えて

2

あなたが必要とするものには余計かもしれませんが、OpenCVライブラリ用のC#用の素晴らしいラッパーがあります。

私は、BLOB検出にOpenCVをうまく使用しています。そのため、あなたは何をしようとしているのか便利です。

http://www.emgu.com/wiki/index.php/Main_Page

とOpenCVの上のwikiページ:

http://en.wikipedia.org/wiki/OpenCV

編集を追加します。ここではC#でEmguためのブロブ検出ライブラリです。地域を降順でブロブを並べ替えることのいくつかの素晴らしい機能さえあります(ノイズを除去するのに便利です)。再び

http://www.emgu.com/forum/viewtopic.php?f=3&t=205

編集:

Emguがあまりにもヘビー場合、Aforge.NETはまた、いくつかのブロブ検出方法

http://www.aforgenet.com/framework/

2

場合、それは簡単です。アルゴリズムの場合はedge detectionです。

+0

必要に応じて正確に2色にすることができます。私はヒートマップをフィルタリングしています – Malfist

+0

次に、エッジ検出アルゴリズムを使用しても問題ありません。問題は色ではなく、ピクセルでの変化です。非常に急な相違がある場合は、非常に簡単です。これはヒートマップに適用されます。しかし、アルゴリズムの具体的な実装についてはお手伝いできません。 – Femaref

1

あなたはこの質問からのサンプルコードのようなものを使用することができます:それはあなたがあなたのイメージ内の特定の色のX/Yを見つけましょうfind a color in an image in c#

。次に、最小x /最大xと最小y /最大yを使用して、長方形を描くことができます。

3

ランダムピクセルをシードピクセルとして選択します。これは領域Aになります。Aがそれ以上大きくならないようにAを繰り返し展開します。それがあなたのエリアです。 Aを拡大する

の方法は、「類似色」はあなたにとって何を意味するかA.

内の少なくとも1つの周辺画素と、彼らは似た色を有するようにAに隣接する画素、探しであるやや変数です。正確に2つの色を作ることができれば、別の答えで言うように、「類似」は「等しい」です。そうでなければ、「類似」は、2つの色の各成分が互いに小さい(すなわち、255,128,128が252,125,130に類似する)RGB値を有する色を意味する。

また、選択したピクセルをシードピクセルと似ている必要があるように制限することもできますが、人間がシードを選択しているときに効果的です。 (これはPhotoshopなどで行われていると思います)

これは、グラデーションをフィルタリングせずに処理できるため、検出結果を処理する必要がないため、エッジ検出より優れている可能性がありますコヒーレント領域へのエッジ。グラデーションは黒から白まですべてに行き渡り、同じエリアとして登録されますが、それはあなたが望むものかもしれません。また、実装には注意が必要です。そうしないと、処理が遅すぎます。

0

C位によって物体色に基づいて、画像から物体を検出を含みます

オブジェクトの色に基づいてオブジェクトを検出するには、簡単なアルゴリズムfoあなたはフィルタリング方法を選択する必要があります。手順は、通常

画像 ウルフィルタリング が 減算背景をgreyscalling適用します取り、すべてのオブジェクトの位置 を見つける ウルオブジェクトを取得するにはまずuはフィルタリング方法を選択する必要が オブジェクトをマークしている、提供される多くのフィルタリング方法がありますC#の場合。主に私は、この目的のために、彼らはいくつかのフィルタを持って、aforgeフィルタを好む彼らは ChannelFiltering HSLFiltering YCbCrFiltering私のお気に入りは、それが簡単でシンプルですEuclideanColorFilteringさ EuclideanColorFilteringをColorFiltering

です。他のフィルタリングについては、ここでそれらについてもっと知ることができます。 UはこれらをURコードで適用するためにAforge dllをダウンロードしなければなりません。 正確な手順の詳細については、こちらをご覧ください。Link