8

クライアントのブラウザに次の html コードを表示しています。

<div id="Div">
  <img src="myImage.jpg" id="myImage"/>
</div>

この特定の画像はユーザーによってアップロードされ、ここに表示されます。ユーザーがこの画像から赤目を除去できるようにする必要があります。ポストバックなしでやりたいと思います(後ろでCodeIgniterを使用しています)。JQuery(またはプレーンJavascript)でこれに利用できるライブラリはありますか? そうでない場合、何が良いアプローチになるでしょうか?

4

1 に答える 1

3

赤目除去では多くのことが行われます

A. 目の検出

B. 赤目領域のマッピング

C. 塗りつぶしの色

D.ファズ

E.不透明

私のアドバイス

Jquery や PHP の JOB でなくても、赤目を効果的に除去できない場合

考えられる解決策

  1. ユーザーが赤目を自分で選択できる Jquery 領域選択スクリプトを取得します (これにより、領域 (X1、Y1、X2、Y2、高さ、幅) を取得できます) 例http://odyniec.net/projects/ imgareaselect/

  2. 代わりの色を選択できるシンプルなカラーピッカーを用意する??? デフォルトは黒にすることができます

  3. 赤目除去のためにPHPでimagemagick使用するリクエストを送信しますexec

  4. 画像を出力できません...

編集1

この JOB 用のコマンド ライン ツールを用意するお手伝いをすることができました

http://www.fmwconcepts.com/imagemagick/index.php http://www.fmwconcepts.com/imagemagick/redeye/index.php

基本的な考え方

A. 入力画像の彩度を下げたコピーを作成する

B. ファジー フラッドフィルを実行してマスク イメージを作成する

C. マスク画像を使用して元の彩度を下げた画像と合成する

D. モルフォロジー クローズ操作を適用してマスクのスペキュラー ホールを埋め、差分操作を作成して穴だけの新しいマスクを作成する

E. 新しいマスクを適用して、前の結果を元の画像の完全な明度、彩度ゼロのバージョンと合成します。

サンプルプロセス

convert -quiet -regard-warnings "$infile" +repage "$tmpA1"
convert $tmpA1 -modulate $light,$sat,100 $tmpA2
proc=""
for ((i=0; i<np; i++)); do
proc="$proc matte ${pairArray[i]} floodfill"
done
convert $tmpA5 -fuzz $fuzz% -fill none -draw "$proc" \
-fill "rgba(255,255,255,1)" +opaque "rgba(0,0,0,0)" \
-fill "rgba(0,0,0,1)" -opaque "rgba(0,0,0,0)" \
-alpha off -negate $tmpA3
if [ "$dilate" = 0 ]; then
dilation=""
else
dilation="-morphology dilate disk:$dilate"
fi
convert $tmpA1 $tmpA2 $tmpA3 -compose over -composite $tmpA2
convert $tmpA3 \( +clone -morphology close disk:$rad $dilation \) \
-compose difference -composite -auto-level \
-negate -threshold 0 -negate $tmpA4
convert $tmpA2 \( $tmpA1 -modulate 100,0,100 \) $tmpA4 \
-compose over -composite $outfile

これが役立つことを願っています

ありがとう

:)

于 2012-04-05T09:01:34.803 に答える