2017-06-22 11 views
1

私はプロジェクトに取り組んでおり、状況に遭遇しました。 は、IR画像の長方形オブジェクト(黒いキーボード)を検出したいと思います。背景がかなりきれいなので、実際には難しい問題ではありません。私はOpenCVで単純なしきい値minAreaRectを使用して解決しました。 Easy case of the problemopenCVで画像内の部分的に不鮮明な矩形を検出する

しかし、私はまた私が(はい、リアルタイムで)それを動かすために私の手を使っ時にプログラムがこのオブジェクトを追跡します。そして、私の手はこの場合のように物体の小さな部分をカバーします。 Tricky case of the problem

私の最初の考えは、簡単なケースでオブジェクトのサイズを学ぶことです。ハードケースの場合、できるだけ多くの白いピクセルをカバーするために私の「学習された矩形」をマッチさせてください。

誰かが優れた解決策を備えていますか、機能ベースのアプローチですか?これらのIR画像でオブジェクトがほとんど黒であるため、機能を使用して状況を改善できるかどうかはわかりません。

ありがとうございます。

答えて

1

閾値処理された画像に拡張や侵食などの形態学的操作(Opencvではこれらの実装が実装されています)を使用することはどうですか?一度それを取得したら、オブジェクトの形状を理解するために、いくつかのコーナー検出/輪郭検出またはライン検出器(opencv contribモジュール内)を試すことができます。

+0

ありがとうございます。私は形態学的操作を使ってみたが、うまくいくように思えた。 –

+0

@duy_sau_rom答えが役に立つことを発見し、問題を解決した場合は、アップグレートし、回答を「受け入れ済み」とマークしてください。 –

+0

私はstackoverflowで新しく、upvoteにもう少し評判が必要です。私は後であなたのために戻ってくるだろう。 : ') –

1

あなたの "トリッキーな"ケースはまだかなり単純ですが、膨張/腐食(Shawn Mathewの言及のとおり)と同じでminAreaRectで解決できます。

enter image description here

は、よりに興味があります:ここでは、右に5×5のカーネルで収縮と膨張した後、あなたの閾値処理画像である、minAreaRectは左の元閾値処理画像の上に描かれたそれのために回転した矩形を、見つけましたたとえばキーボードの短い辺の1つを手でカバーする複雑なケースはありますか?

+0

この回答ありがとうございます。私はそのケースはかなり厳しいですし、キーボードの元のサイズを知らなくても簡単に解決できないと思いますか? –

+0

私はそれが元のサイズを知らなくても全く解決できないとは思いませんが、サイズは知っていても、長い/短辺の比率を知っていれば、ややシンプルになります:minAreaRectは、短辺のどちらに次の白い画素が少ないかを推定し、その方向に矩形を延長します。そんな感じ。 – Headcrab

+0

白い(または別の色の)キーボードのケースについてどう思いますか?私はまだそれを見ることができ、それがキーボードであることを知ることができると思うが、そうするのは簡単ではない。 –

関連する問題