カメラから撮影した一連の画像があります。画像は手と周囲で構成されています。手以外のすべてを削除する必要があります。
画像処理初心者です。上記の質問に関して誰か助けてくれませんか。C と Matlab を快適に使用できます。
カメラから撮影した一連の画像があります。画像は手と周囲で構成されています。手以外のすべてを削除する必要があります。
画像処理初心者です。上記の質問に関して誰か助けてくれませんか。C と Matlab を快適に使用できます。
バックグラウンド減算は簡単に実装できます(すべてのフレームの平均としてバックグラウンドを推定し、バックグラウンドとしきい値から各フレームを減算して絶対差を算出します)が、残念ながら、1。カメラに手動ゲインと露出がある場合2.照明条件が変わらない場合3。背景は静止しています。4.背景は前景よりもはるかに長く表示されます。
あなたの説明を考えると、私はこれらが当てはまらないと思います-したがって、あなたが使用できるのは-すでに指摘したように-背景から前景をセグメント化する手段としての色です。それはあなたが最善の策を分離しようとしている手なので、手の色を学ぶことです。opencvは、これを行うためのいくつかの手段を提供します。これを自分で行いたい場合は、いくつかの手のピクセルの色を取得し(少なくとも1つのフレームに対して手動で指定する必要があります)、それらをHUE(明るさに依存しない方法で色をカプセル化します。肌の色)に変換します。非常に一定の色相を持っています)そして、HUEヒストグラムを作成します。これを残りのピクセルと比較してから、色相が十分に類似しているかどうかを判断します。
どのようなイメージがあるかを指定できますか。背景は動いていますか、それとも静止していますか? 静的な背景の場合は、少し簡単です。背景画像から受信画像を差し引くだけです。いくつかの形態学的操作を使用して、見栄えを良くすることができます。それらはすべて、所有する画像の品質に依存します。背景が動いている場合は、色ベースのセグメンテーションをお勧めします。画像を YCbCr に変換してから、適切にしきい値を設定します。私はそれについて利用可能ないくつかの論文があることを知っています(しかし、私はそれらを見つける時間がありません). 最初にそれらを読むことをお勧めします。ここにあなたを助けるかもしれない1つのリンクがあります. 肌セグメンテーションの部分を読んでください。
http://www.stanford.edu/class/ee368/Project_03/Project/reports/ee368group08.pdf