1

このリンクを使用して検出された手の画像があります。HSV色空間を使用したその手の検出。

今、私は問題に直面しています。手の領域を決定するのに十分な範囲の囲み領域を取得し、境界線を描画し、次に囲み領域を塗りつぶし、元の領域から差し引いて手を削除する必要があります。

私はこれまで、過剰摂取のように見えるノイズを減らすために画像をぼかしたり、画像を拡張したり、穴を塞いだりすることを試みてきました。私は輪郭を試しましたが、これが今のところ最善のアプローチのようです。私は凸包(最大)を取得しようとしていましたが、さまざまなしきい値でテストした後、次のようになりました。

ここに画像の説明を入力してください

不正確さは、船体がまっすぐになっている親指で見ることができます。湾曲している必要があります。手で覆われている領域を特定するために、手の位置を把握しようとしています。元の画像から手を削除するためにそれを減算します。それが私が達成したいことです。

これに対するより良いアプローチはありますか?

そしてアイデアの提案は大歓迎です。

オリジナルと検出されたものは次のとおりです

ここに画像の説明を入力してください

4

2 に答える 2

1

凸包の代わりに、アルファ包を使用することを検討してください。これは、凹みを許可することで形状の輪郭をよりよくたどることができます。

このサイトには、アルファ形状の優れた要約があります。「アルファ形状について常に知りたいと思っていたが、尋ねることを恐れていたすべて」(François Bélair 著)。

http://cgm.cs.mcgill.ca/~godfried/teaching/projects97/belair/alpha.html

David が投稿で述べたように、RGB やグレースケールではなく、HSV (または HSI) 色空間を使用したしきい値処理を検討してください。より長い処理時間を許容できる場合は、Mean Shift などのアルゴリズムを使用して、自分のようなトリッキーな画像をセグメント化できます。OpenCV には Mean Shift の実装があり、本Learning OpenCVにはアルゴリズムの簡潔な説明があります。

平均シフトを使用した画像セグメンテーションの説明

いずれにせよ、標準の二値化しきい値はあまり役に立たないようです。動的しきい値の使用を検討してください。私が思い出したところから、OpenCVの輪郭には少なくともローカル/動的しきい値が実装されています。

于 2012-10-08T03:44:04.667 に答える
1

凸包が与える領域の代わりに手の領域を識別したいと仮定し、アプリケーションの背景が少なくとも同じ色であると仮定すると、可能であれば手の代わりに背景を識別するために hsv-threshold を適用します。または、配光が一貫していない場合は、適応しきい値になる可能性があります。これは多くのアプリケーションが行っていることだと思います

背景を修正できない場合、セグメンテーションは簡単に解決できる問題ではありません。影と手のひらの線を処理する必要があるからです。

于 2012-10-07T21:38:51.507 に答える