赤目除去では多くのことが行われます
A. 目の検出
B. 赤目領域のマッピング
C. 塗りつぶしの色
D.ファズ
E.不透明
私のアドバイス
Jquery や PHP の JOB でなくても、赤目を効果的に除去できない場合
考えられる解決策
ユーザーが赤目を自分で選択できる Jquery 領域選択スクリプトを取得します (これにより、領域 (X1、Y1、X2、Y2、高さ、幅) を取得できます) 例http://odyniec.net/projects/ imgareaselect/
代わりの色を選択できるシンプルなカラーピッカーを用意する??? デフォルトは黒にすることができます
赤目除去のためにPHPでimagemagick
使用するリクエストを送信しますexec
画像を出力できません...
編集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
これが役立つことを願っています
ありがとう
:)