19-11-2009, 12:04 AM
En fait ce que tu cherches c'est la couleur dominante... La raison de ma question sur la luminosité.
Peut être qu'un truc du type:
niveau_gris1=R1+V1+B1/3
niveau_gris2=R2+V2+B2/3
$red=pow(R1/niveau_gris1-R2/niveau_gris2,2);
$green=pow(V1/niveau_gris1-V2/moyenne2,2);
$blue=pow(B1/niveau_gris1-B2/niveau_gris2,2);
$proche=($red+$green+$blue);
Ainsi tu exprimes ta différence en fonction de la part que prend le bleu par rapport au rouge et au vert en oubliant la notion de lumière.
Ceci dit la j'ai complètement abolie le concept de luminosité si bien que du blanc pourra être pris pour du noir!
C'est pourquoi je rajouterai:
$niveau_gris=pow(niveau_gris1-niveau_gris2,2)
$proche=($red+$green+$blue+$niveau_gris);
A mon avis çà peut résoudre le problème ceci dit je ne suis sur de rien, j'ai pas essayer ni quoi que ce soit.
Notamment je suis parti sur le postulat que chaque couleur avaient le même poids vis à vis de l'oeil ce qui je pense n'est pas le cas, notamment j'ai trouvé çà:
Peut être qu'un truc du type:
niveau_gris1=R1+V1+B1/3
niveau_gris2=R2+V2+B2/3
$red=pow(R1/niveau_gris1-R2/niveau_gris2,2);
$green=pow(V1/niveau_gris1-V2/moyenne2,2);
$blue=pow(B1/niveau_gris1-B2/niveau_gris2,2);
$proche=($red+$green+$blue);
Ainsi tu exprimes ta différence en fonction de la part que prend le bleu par rapport au rouge et au vert en oubliant la notion de lumière.
Ceci dit la j'ai complètement abolie le concept de luminosité si bien que du blanc pourra être pris pour du noir!
C'est pourquoi je rajouterai:
$niveau_gris=pow(niveau_gris1-niveau_gris2,2)
$proche=($red+$green+$blue+$niveau_gris);
A mon avis çà peut résoudre le problème ceci dit je ne suis sur de rien, j'ai pas essayer ni quoi que ce soit.
Notamment je suis parti sur le postulat que chaque couleur avaient le même poids vis à vis de l'oeil ce qui je pense n'est pas le cas, notamment j'ai trouvé çà:
http://www.linuxgraphic.org/grokking/node52.html a écrit :luminance, Y=0.30 R + 0.59 G + 0.11 B.