2012-04-05 10 views
8

Ho il seguente codice html reso sul browser del mio cliente:Rimozione occhi rossi da un'immagine sul lato client utilizzando jQuery

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

Questa particolare immagine viene caricata dall'utente e poi visualizzato qui. Devo consentire al mio utente di rimuovere eventuali occhi rossi da questa immagine. Mi piacerebbe farlo senza postback (sto usando CodeIgniter sul retro). Ci sono delle librerie disponibili per questo in JQuery (o semplice Javascript)? Se no, quale potrebbe essere un buon approccio?

+5

Questa è una cosa molto banale che stai cercando di fare. – ThiefMaster

+3

+1 per ambizione. : D – marue

+0

: D. Quindi dovrei lasciare che PHP esegua l'elaborazione e mostri solo il risultato? – unni

risposta

3

Ci sono un sacco di cose che vanno avanti nella rimozione degli occhi rossi Detection

A. Eye

B. Regione Red Eye Mapping

C. Colore riempimento

D. Fuzz

E. opaco

Il mio consiglio

Se non è un lavoro per Jquery e perfino PHP non rimuovere gli occhi rossi in modo efficace

Probabile Soluzione

  1. Ottenere uno script di selezione Jquery area in cui gli utenti possono selezionare il loro colore rosso occhi di loro stessi (Con questo si sarebbe in grado di ottenere la regione (X1, Y1, X2, Y2, Altezza, Larghezza) esempio http://odyniec.net/projects/imgareaselect/

  2. Hai un semplice selettore colori in cui possono selezionare il colore di sostituzione ??? Predefinito può essere nero

  3. inviare richiesta a imagemagick utilizzando exec in PHP per la rimozione degli occhi rossi

  4. Non è possibile trasmettere la vostra immagine ...

EDIT 1

Sono stato in grado di aiutarti a ottenere uno strumento da riga di comando pronto per questo JOB

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

base Concetto

A. Creare una copia Togli saturazione dell'immagine in ingresso

B. Eseguire una sfocata floodFill per creare un'immagine maschera

C. Composizione originale con l'immagine desaturato utilizzando l'immagine della maschera

D.Applicare un'operazione di chiusura morfologica per riempire il foro speculare nella maschera e quindi creare un'operazione di differenza per creare una nuova maschera del solo foro

E. Applicare la nuova maschera per comporre il risultato precedente con una piena leggerezza, a zero la versione saturazione dell'immagine originale

processo Esempio

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 

Spero che questo aiuta

Grazie

:)

+0

Grazie mille per la spiegazione dettagliata. Questo aiuta davvero. – unni

+0

Siete i benvenuti .... – Baba

Problemi correlati