2

HTML5キャンバスに読み込まれた写真画像から背景を削除しようとしています。グリーンスクリーン効果のようなものを考えてください。

HTML / JS/jQueryを使用しています

写真の背景は、たとえば、緑のカーテンになります。照明などの関係で、カーテン全体の色が正確になりません。

私が今していることは、ユーザーがCanvas内でクリックしたピクセルのRGB値を取得することです。それが背景であると考えられます。そのピクセルのR+G + Bを追加して、背景と見なされるものを設定します。

次に、キャンバスをピクセルごとに調べ、ピクセルが背景として設定されたRGB値に近いかどうかを確認します(たとえば、上または下の50以内)。一致する場合は、キャンバス内でピクセルが透明になるように変更します。

これは概念実証としては十分に機能しますが、何かを行うには十分ではありません。

誰かがバックグラウンド減算についてもっと良いアイデアを持っていますか?

乾杯!

4

1 に答える 1

3

GrabCut アルゴリズムまたはGrowCut アルゴリズムを見てください。前者は「反復グラフ カットを使用した前景抽出」、後者は「セル オートマトンによる画像セグメンテーション」です。これらの論文はどちらも、背景画像データを削除するために使用される古いアルゴリズムの一部について、より深い洞察を提供します。これらのアルゴリズムの 1 つを Javascript で何らかの方法で実装できれば、ほとんどの方法で問題ないと思います。

OPENcvコンピューター ビジョン ライブラリ(c/c++ で記述) には、効率的な画像操作方法が多数あります。OPENcv ライブラリの BackgroundSubtractorメソッドの1 つ(一部はChris Stauffer と WEL Grimson のアルゴリズムに基づいていると思います) を Javascript に移植してみて、それを使用して背景を分析し、それを減算することもできますが、それらはプログレッシブに基づいていると思います。静止画像ではなくビデオ フレーム。

Google コードのjs-aruco プロジェクトは、 OPENcv ライブラリの機能の一部を既に移植しています (コードベースはこちら)。GrabCutまたはGrowCutアルゴリズムをプログラムできます

于 2012-10-24T16:26:51.237 に答える