Pierre CHAUVEAU a écrit dans le message : 423055aa$0$1245$
Merci pour les formules ... j'ai aussi posé la question sur un ce ces
sites.
si cela peut vous aider, il y a aussi la transformation YUV Y= luminosité, U et V composantes couleurs...
on augmente la saturation en multipliant U et V par un coef...
voila le code optimisé calcul entier :
transformation en YUV
y = (9798*r + 19235*g + 3736*b)>>15 ; u = (-169*r - 331*g + 500*b )/1000; v = (500*r - 419*g - 81*b )/1000;
retour en RVB
r = (y<<15) + 45930*v ; g = (y<<15) - 11262*u - 23402*v ; b = (y<<15) + 58070*u ;
Ca m'a l'air simple et sympa tout ça, je vais essayer.
Merci.
Pierre.
Pierre CHAUVEAU
dark poulpo a écrit :
tu devrais poser ta question sur un NG de graphisme.
tout ce que je sais c'est :
T = arcsin [ ( 3/2 )1/2 * ( V - R ) / S ] S = ( R2 + V2 + B2 - R * V - B * R - V * B ) 1/2 L = ( R + V + B ) / 3
R = 1 - ( 1 / 3 ) * S * cos( T ) - ( 1 / 31/2) * S * sin( T ) V = 1 + ( 2 / 3 ) * cos( T ) B = 1 - 1 / 3 * S * cos( T ) + 1 / 31/2 * S * sin( T )
L sert en general pour connaitre les détails non visible car perdus dans le noir et donc voir quel détail sont réccupérable sur une image si on lui affecte un filtre gris (appareil photo ou logiciel de retouche)
Dans ces formules, quelles sont les plages de variation de T, S, L d'une part et de R, G, B d'autre part.
Merci de votre aide.
Pierre.
dark poulpo a écrit :
tu devrais poser ta question sur un NG de graphisme.
tout ce que je sais c'est :
T = arcsin [ ( 3/2 )1/2 * ( V - R ) / S ]
S = ( R2 + V2 + B2 - R * V - B * R - V * B ) 1/2
L = ( R + V + B ) / 3
R = 1 - ( 1 / 3 ) * S * cos( T ) - ( 1 / 31/2) * S * sin( T )
V = 1 + ( 2 / 3 ) * cos( T )
B = 1 - 1 / 3 * S * cos( T ) + 1 / 31/2 * S * sin( T )
L sert en general pour connaitre les détails non visible car perdus dans le
noir et donc voir quel détail sont réccupérable sur une image si on lui
affecte un filtre gris (appareil photo ou logiciel de retouche)
Dans ces formules, quelles sont les plages de variation de T, S, L d'une
part et de R, G, B d'autre part.
tu devrais poser ta question sur un NG de graphisme.
tout ce que je sais c'est :
T = arcsin [ ( 3/2 )1/2 * ( V - R ) / S ] S = ( R2 + V2 + B2 - R * V - B * R - V * B ) 1/2 L = ( R + V + B ) / 3
R = 1 - ( 1 / 3 ) * S * cos( T ) - ( 1 / 31/2) * S * sin( T ) V = 1 + ( 2 / 3 ) * cos( T ) B = 1 - 1 / 3 * S * cos( T ) + 1 / 31/2 * S * sin( T )
L sert en general pour connaitre les détails non visible car perdus dans le noir et donc voir quel détail sont réccupérable sur une image si on lui affecte un filtre gris (appareil photo ou logiciel de retouche)
Dans ces formules, quelles sont les plages de variation de T, S, L d'une part et de R, G, B d'autre part.
Merci de votre aide.
Pierre.
Pierre CHAUVEAU
Aurélien REGAT-BARREL a écrit :
Tu as tout plein de formules ici: http://www.easyrgb.com/math.php?MATH=M20#text20 TLS = HSV non ?
dans la conversion HSL To RGB, il y a la fonction suivante : (attention, je suis nul en langage C, je programme en pascal DELPHI)
Si j'essaie d'interprèter, les 3 dernières lignes de "if" renvoient une valeur de retour située après le mot clé "return". Mais si c'est cela, je ne comprend pas le dernier "return" qui écrase tout ce qui a été écrit avant (ou alors, il y a une colonie de "else" qui s'est fait la paire) ?
Merci de votre aide.
Pierre.
Aurélien REGAT-BARREL a écrit :
Tu as tout plein de formules ici:
http://www.easyrgb.com/math.php?MATH=M20#text20
TLS = HSV non ?
dans la conversion HSL To RGB, il y a la fonction suivante :
(attention, je suis nul en langage C, je programme en pascal DELPHI)
Si j'essaie d'interprèter, les 3 dernières lignes de "if" renvoient une
valeur de retour située après le mot clé "return". Mais si c'est cela,
je ne comprend pas le dernier "return" qui écrase tout ce qui a été
écrit avant (ou alors, il y a une colonie de "else" qui s'est fait la
paire) ?
Si j'essaie d'interprèter, les 3 dernières lignes de "if" renvoient une valeur de retour située après le mot clé "return". Mais si c'est cela, je ne comprend pas le dernier "return" qui écrase tout ce qui a été écrit avant (ou alors, il y a une colonie de "else" qui s'est fait la paire) ?
Merci de votre aide.
Pierre.
Pierre CHAUVEAU
Stephane Legras-Decussy a écrit :
si cela peut vous aider, il y a aussi la transformation YUV Y= luminosité, U et V composantes couleurs...
on augmente la saturation en multipliant U et V par un coef...
voila le code optimisé calcul entier :
transformation en YUV
y = (9798*r + 19235*g + 3736*b)>>15 ; u = (-169*r - 331*g + 500*b )/1000; v = (500*r - 419*g - 81*b )/1000;
retour en RVB
r = (y<<15) + 45930*v ; g = (y<<15) - 11262*u - 23402*v ; b = (y<<15) + 58070*u ;
Dans ces formules, quelles sont les plages de variation des variables r, g, b ( 0 .. 255 ?) d'une part et y, u, v d'autres part ?
Que veulent dire les signes ">>" ?
Si dans le calcul de "y", cela veut dire : pour "y > 15" , alors dans les calculs de r, g, b on ajoute la valeur pour "y < 15", mais on ne la connait pas ?
Je pense que je n'ai rien compris.
Merci de votre aide.
Pierre
Stephane Legras-Decussy a écrit :
si cela peut vous aider, il y a aussi la transformation YUV
Y= luminosité, U et V composantes couleurs...
on augmente la saturation en multipliant U et V par un coef...
voila le code optimisé calcul entier :
transformation en YUV
y = (9798*r + 19235*g + 3736*b)>>15 ;
u = (-169*r - 331*g + 500*b )/1000;
v = (500*r - 419*g - 81*b )/1000;
retour en RVB
r = (y<<15) + 45930*v ;
g = (y<<15) - 11262*u - 23402*v ;
b = (y<<15) + 58070*u ;
Dans ces formules, quelles sont les plages de variation des variables r,
g, b ( 0 .. 255 ?) d'une part et y, u, v d'autres part ?
Que veulent dire les signes ">>" ?
Si dans le calcul de "y", cela veut dire : pour "y > 15" , alors dans
les calculs de r, g, b on ajoute la valeur pour "y < 15", mais on ne la
connait pas ?
si cela peut vous aider, il y a aussi la transformation YUV Y= luminosité, U et V composantes couleurs...
on augmente la saturation en multipliant U et V par un coef...
voila le code optimisé calcul entier :
transformation en YUV
y = (9798*r + 19235*g + 3736*b)>>15 ; u = (-169*r - 331*g + 500*b )/1000; v = (500*r - 419*g - 81*b )/1000;
retour en RVB
r = (y<<15) + 45930*v ; g = (y<<15) - 11262*u - 23402*v ; b = (y<<15) + 58070*u ;
Dans ces formules, quelles sont les plages de variation des variables r, g, b ( 0 .. 255 ?) d'une part et y, u, v d'autres part ?
Que veulent dire les signes ">>" ?
Si dans le calcul de "y", cela veut dire : pour "y > 15" , alors dans les calculs de r, g, b on ajoute la valeur pour "y < 15", mais on ne la connait pas ?
Je pense que je n'ai rien compris.
Merci de votre aide.
Pierre
Stephane Legras-Decussy
Pierre CHAUVEAU a écrit dans le message : 4230d404$0$1221$
Dans ces formules, quelles sont les plages de variation des variables r, g, b ( 0 .. 255 ?) d'une part et y, u, v d'autres part ?
rgb sont dans la plage 0..255 Y est positif, U et V sont signés... j'ignore les plages de YUV, ça n'etait pas utile dans le code où j'ai utilisé ça... ( calculs sur des long)
ces formules marchent bien, j'ai fait un plugin de traitement d'image pour virtualdub notamment...
Que veulent dire les signes ">>" ?
c'est le décalage de bit à gauche ou à droite...
ainsi x<<4 est equivalent à x * 16
donc <<15 c'est multiplier par 32767
et >>15 c'est diviser par 32767
(attention, c'est portable sur nombres non signés uniquement)
Pierre CHAUVEAU <pierre.poufpouf.chauveau@wanadoo.fr> a écrit dans le
message : 4230d404$0$1221$8fcfb975@news.wanadoo.fr...
Dans ces formules, quelles sont les plages de variation des variables r,
g, b ( 0 .. 255 ?) d'une part et y, u, v d'autres part ?
rgb sont dans la plage 0..255
Y est positif,
U et V sont signés...
j'ignore les plages de YUV, ça n'etait pas utile dans le code
où j'ai utilisé ça... ( calculs sur des long)
ces formules marchent bien, j'ai fait un plugin de traitement d'image
pour virtualdub notamment...
Que veulent dire les signes ">>" ?
c'est le décalage de bit à gauche ou à droite...
ainsi x<<4 est equivalent à x * 16
donc <<15 c'est multiplier par 32767
et >>15 c'est diviser par 32767
(attention, c'est portable sur nombres non signés uniquement)
Pierre CHAUVEAU a écrit dans le message : 4230d404$0$1221$
Dans ces formules, quelles sont les plages de variation des variables r, g, b ( 0 .. 255 ?) d'une part et y, u, v d'autres part ?
rgb sont dans la plage 0..255 Y est positif, U et V sont signés... j'ignore les plages de YUV, ça n'etait pas utile dans le code où j'ai utilisé ça... ( calculs sur des long)
ces formules marchent bien, j'ai fait un plugin de traitement d'image pour virtualdub notamment...
Que veulent dire les signes ">>" ?
c'est le décalage de bit à gauche ou à droite...
ainsi x<<4 est equivalent à x * 16
donc <<15 c'est multiplier par 32767
et >>15 c'est diviser par 32767
(attention, c'est portable sur nombres non signés uniquement)
Pierre CHAUVEAU
Stephane Legras-Decussy a écrit :
Pierre CHAUVEAU a écrit dans le message : 4230d404$0$1221$
Dans ces formules, quelles sont les plages de variation des variables r, g, b ( 0 .. 255 ?) d'une part et y, u, v d'autres part ?
rgb sont dans la plage 0..255 Y est positif, U et V sont signés... j'ignore les plages de YUV, ça n'etait pas utile dans le code où j'ai utilisé ça... ( calculs sur des long)
ces formules marchent bien, j'ai fait un plugin de traitement d'image pour virtualdub notamment...
Que veulent dire les signes ">>" ?
c'est le décalage de bit à gauche ou à droite...
ainsi x<<4 est equivalent à x * 16
donc <<15 c'est multiplier par 32767
et >>15 c'est diviser par 32767
(attention, c'est portable sur nombres non signés uniquement)
Ok, merci pour ces précisions, je viens de tester cette méthode avec des coefficients que j'ai par ailleurs trouvés : ça marche impec et c'est rapide.
Merci beaucoup.
Pierre
Stephane Legras-Decussy a écrit :
Pierre CHAUVEAU <pierre.poufpouf.chauveau@wanadoo.fr> a écrit dans le
message : 4230d404$0$1221$8fcfb975@news.wanadoo.fr...
Dans ces formules, quelles sont les plages de variation des variables r,
g, b ( 0 .. 255 ?) d'une part et y, u, v d'autres part ?
rgb sont dans la plage 0..255
Y est positif,
U et V sont signés...
j'ignore les plages de YUV, ça n'etait pas utile dans le code
où j'ai utilisé ça... ( calculs sur des long)
ces formules marchent bien, j'ai fait un plugin de traitement d'image
pour virtualdub notamment...
Que veulent dire les signes ">>" ?
c'est le décalage de bit à gauche ou à droite...
ainsi x<<4 est equivalent à x * 16
donc <<15 c'est multiplier par 32767
et >>15 c'est diviser par 32767
(attention, c'est portable sur nombres non signés uniquement)
Ok, merci pour ces précisions, je viens de tester cette méthode avec des
coefficients que j'ai par ailleurs trouvés : ça marche impec et c'est
rapide.
Pierre CHAUVEAU a écrit dans le message : 4230d404$0$1221$
Dans ces formules, quelles sont les plages de variation des variables r, g, b ( 0 .. 255 ?) d'une part et y, u, v d'autres part ?
rgb sont dans la plage 0..255 Y est positif, U et V sont signés... j'ignore les plages de YUV, ça n'etait pas utile dans le code où j'ai utilisé ça... ( calculs sur des long)
ces formules marchent bien, j'ai fait un plugin de traitement d'image pour virtualdub notamment...
Que veulent dire les signes ">>" ?
c'est le décalage de bit à gauche ou à droite...
ainsi x<<4 est equivalent à x * 16
donc <<15 c'est multiplier par 32767
et >>15 c'est diviser par 32767
(attention, c'est portable sur nombres non signés uniquement)
Ok, merci pour ces précisions, je viens de tester cette méthode avec des coefficients que j'ai par ailleurs trouvés : ça marche impec et c'est rapide.