一定の背景で撮影した衣料品の画像を使用して、衣料品を除く画像のすべてのピクセルを透明にします。これを行うための最良の方法は何ですか?私はこれとオープンソースライブラリopencvに共通するアルゴリズムを研究しました。自分でローリングしたり、opencvを使用したりする以外に、これを行う簡単な方法はありますか?私はどんな言語やプラットフォームにもオープンです。
ありがとう
一定の背景で撮影した衣料品の画像を使用して、衣料品を除く画像のすべてのピクセルを透明にします。これを行うための最良の方法は何ですか?私はこれとオープンソースライブラリopencvに共通するアルゴリズムを研究しました。自分でローリングしたり、opencvを使用したりする以外に、これを行う簡単な方法はありますか?私はどんな言語やプラットフォームにもオープンです。
ありがとう
背景が画像内で一貫しているが、画像間で一貫性がない場合は、注意が必要になる可能性がありますが、これが私が行うことです。
衣服のエッジは、背景と衣服の両方から色を取得するピクセルで構成されているため、少し醜く見えます。これに対抗するには、もう少し作業を行う必要があります。
基本的に、背景の色を見つけて差し引くのですが、ご存知だと思います。これをすべて自動的に行うのは少し難しいですが、それは可能のようです。
まず、OpenCVを使用したブロブ検出を見て、これが基本的に行われているかどうかを確認します。
自分でやるには:
背景を見つける:いくつかのオプションがあります。おそらく最も簡単なのは画像をヒストグラム化することであり、同様の値を持つ多数のピクセルが背景であり、2つの大きなコレクションがある場合、背景は中央に大きな穴があるものになります。別のアプローチは、背景色として周囲の周りのバンドを取ることですが、たとえば、フラッシュからの反射がより中央に位置する背景ピクセルを劇的に明るくする可能性があるため、これは劣っているように見えます。
背景を削除する:これに対する最初の取り組みは、背景色に基づいて画像をしきい値設定し、次にこれに対して「開く」または「閉じる」アルゴリズムを実行し、これをマスクとして使用して衣料品を選択することです。(開閉のポイントは、白いブラウスの黒いボタンや、黒い服の明るい反射など、服の小さな背景色のアイテムを削除しないことです。)
OpenCVはこのための優れたツールです。
これの最も難しい部分は、おそらくオブジェクトの周りの影になります(たとえば、白い背景の黒いジャケットは、エッジの一部とこのカットを作成する場所に連続した灰色の影がありますか?)、しかし、これまでに到達した場合、別の質問を投稿してください。
すべての画像で同じ背景を持つカラー画像の場合:
背景の正確な色の強度がわかっていて、それが変化せず、衣料品がこの色と一致しない場合、これは背景の減算の単純なアプリケーションです。つまり、特定の色の強度ではないものはすべて、 「オン」ピクセル、関心のあるものの1つ。次に、連結成分のラベル付け(http://en.wikipedia.org/wiki/Connected_Component_Labeling)を使用して、オブジェクトの個別のグループを把握できます。