2012-04-05 4 views
8

Tengo el siguiente código HTML representado en el navegador de mi cliente:Eliminación de ojos rojos de una imagen en el lado del cliente usando jQuery

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

subido Esta imagen en particular por el usuario y luego se muestran aquí. Necesito permitir que mi usuario elimine los ojos rojos de esta imagen. Me gustaría hacerlo sin ninguna devolución (estoy usando CodeIgniter en la parte posterior). ¿Hay alguna biblioteca disponible para esto en JQuery (o Javascript simple)? Si no, ¿cuál podría ser un buen enfoque?

+5

Eso es algo muy trivial que estás tratando de hacer. – ThiefMaster

+3

+1 por ambición. : D – marue

+0

: D. Entonces, ¿debería dejar que PHP haga el procesamiento y solo mostrar el resultado? – unni

Respuesta

3

Hay muchas cosas que suceden en la eliminación de ojos rojos Detección

A. Ojo

B. Región de ojos rojos Mapeo

C. Relleno de color

D. pelusa

E. opaco

Mi consejo

Si no es un trabajo para jQuery e incluso PHP no sería eliminar los ojos rojos con eficacia

probable solución

  1. Obtener una secuencia de comandos de selección de área Jquery donde los usuarios pueden seleccionar el color rojo se mira a sí mismo (con esto, usted podría obtener la región (X1, Y1, X2, Y2, alto, ancho) ejemplo http://odyniec.net/projects/imgareaselect/

  2. ¿Tiene un selector de color simple donde pueden seleccionar el color de reemplazo? Por defecto puede ser de color negro Enviar solicitud

  3. a imagemagick usando exec en PHP para la eliminación de ojos rojos

  4. No se puede emitir su imagen ...

EDIT 1

Pude ayudarlo a obtener una herramienta de línea de comandos lista para este TRABAJO

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

Concepto básico

A. Crear una copia de desaturar la imagen de entrada

B. Realizar una difusa floodFill para crear una imagen máscara

C. Compuesto del original con la imagen desaturada utilizando la imagen de máscara

D.Aplique una operación de cierre morfológico para rellenar el orificio especular en la máscara y luego cree una operación diferente para crear una nueva máscara del agujero

E. Aplique la nueva máscara para componer el resultado anterior con una ligereza completa, cero versión de la saturación de la imagen original

Proceso Muestra

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 

espero que esto ayude a

Gracias

:)

+0

Muchas gracias por la explicación detallada. Esto realmente ayuda. – unni

+0

De nada ... – Baba

Cuestiones relacionadas