我在客户端浏览器上呈现了以下HTML代码:
<div id="Div">
<img src="myImage.jpg" id="myImage"/>
</div>
此特定图像由用户上载,然后在此处显示。
我需要允许我的用户删除此图像中的任何红眼。我想做它没有任何回发(我在后面使用编码器点火器)。jquery(或普通javascript)中是否有可用于此的库?如果不是,有什么好办法?
最佳答案
在红眼手术中有很多事情要做
A.眼睛检测
b.红眼区域图
C.填充颜色
D.Fuffe
不透明的
我的忠告
如果不是jquery甚至php的工作,就不能有效地消除红眼
可能的解决方案
获取一个jquery区域选择脚本,用户可以在其中选择自己的红眼(使用此脚本,您将能够获得区域(x1,y1,x2,y2,height,width)示例http://odyniec.net/projects/imgareaselect/
有一个简单的颜色选择器,他们可以选择替换颜色????默认值可以是黑色
在php中使用imagemagick
向exec
发送红眼移除请求
你不能输出你的图像…
编辑1
我能帮你准备好这个任务的命令行工具
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
我希望这有帮助
谢谢
:)