Page 1 sur 1

recherche couleur plutot bleue

Posté : mer. 12 juil. 2017 20:54
par IsLaMalice
Bonjour,

Y a t il un moyen plus joli de se rendre compte si le pixel est plutôt dans les bleus ?

Voici mon code :

If dec(StringRight(hex(PixelGetColor($x,$y),6),2)) > 230 then msgbox(0,"","alors c'est plutot bleu !"

je prends la couleur,
je la mets en hexa
je prends les 2 derniers digits
je les passe en décimal
et si ca dépasse 230/255, j'ai mon test validé...

Is

Re: recherche couleur plutot bleue

Posté : mer. 12 juil. 2017 21:16
par jchd
Sachant que du blanc pur est FFFFFF, ce test me semble insuffisant. Mieux vaudrait convertir en Hue et comparer à un intervalle.

Re: recherche couleur plutot bleue

Posté : mer. 12 juil. 2017 22:10
par IsLaMalice
le contexte :
en fait, dans une zone localisée, je dois prélever la couleur pour voir si on est dans le cas "gris clair" ou cas "bleu" (2 types de couleur possibles).

Mais la zone est en dégradé, et se déplace légèrement selon divers paramètres (taille des toolbar latérales, ....)
ce rajoute à cela : la zone est soit "opaque" soit "légèrement transparente", ce qui ajoute de la diversité à la couleur "grise" ou "bleue".


Après divers prélèvements d'échantillons sur des captures, et diverses conversions en RGB, il s'avère que quand on est en cas bleu, on est a chaque fois >230. D’où mon test.

Ma question est plus simplement : comment récupérer simplement la composant B du RGB d'un pixel ?

merci qd meme pour l’intérêt et l'aide !
Is

Re: recherche couleur plutot bleue  

Posté : mer. 12 juil. 2017 23:08
par orax
Voir _ColorGetBlue pour récupérer le bleu, et éventuellement _ColorConvertRGBtoHSL pour une conversion, comme le suggère jchd.
Ce test me semble également insuffisant, mais si ça marche dans ce cas, tant mieux. Même si la composante du bleu est supérieure à 230, ça ne signifie pas que la couleur correspond forcément à du bleu.

Re: recherche couleur plutot bleue

Posté : sam. 15 juil. 2017 13:40
par mdanielm
Bonjour,

Pour moi, il n'y a qu'une formule valable:
_Max(_Max(R, V), 255-B) <= 20 (rayon de tolérance)

Re: recherche couleur plutot bleue

Posté : sam. 15 juil. 2017 16:52
par walkson
Bonjour Daniel,
Il y a quelque chose qui m'échappe dans votre formule ?
#include <Math.au3>
$R = 128
$V = 128
$B = 255

MsgBox (0,"",_Max(_Max($R, $V), 255-$B) ); = 128
Le résultat est 128 pour un joli bleu ?
Ai je fait une erreur ? mauvaise compréhension ?...

@IsLaMalice
En mode RGB
si on prend:
$R = 128
$V = 128
$B = 128
On obtient du gris (128 étant 255/2)
On peut considérer que
$R < 128
$V < 128
$B > 128
tends vers le bleu
mais comme j'ai une mauvaise vue, j'aurai tendance à mettre $B > 180 ou > 190
Bon ! après, mon raisonnement vaut ce qu'il vaut....

Re: recherche couleur plutot bleue

Posté : sam. 15 juil. 2017 21:03
par mdanielm
La condition pour joli bleu est:

_Max(_Max(R, V), 255-B) <= 20 (rayon de tolérance)

Ne pas oublier <= 20
La distance du point (128,128,255) au bleu (0,0,255) est de 128
Comme 128 <= 20 est FAUX, ce n'est pas du bleu

20 est un exemple, on peut remplacer par 50 ou par 10 suivant ce qu'on entend par couleur 'voisine' du bleu.

Re: recherche couleur plutot bleue

Posté : sam. 15 juil. 2017 21:56
par jchd
https://my.pcloud.com/publink/show?code ... ij5ufluF2V
R=0
V=0
B=200
Ce n'est pas du bleu ?

Je persiste à croire, sauf définition précise de " joli bleu", qu'il serait plus adéquat de transformer RGB en HSL et déterminer la demi-élipse qu'on peut qualifier pour du bleu.
https://my.pcloud.com/publink/show?code ... rJJSqblvBV

Re: recherche couleur plutot bleue

Posté : dim. 16 juil. 2017 09:07
par mdanielm
D'accord, c'est du bleu. Le bleu descend bien bas sur son axe! (0,0,10) c'est encore du bleu ?

Si j'ai une deuxième chance, je propose alors un cône de sommet (0,0,20) , d'axe bleu, de base dans le plan B=255 et de rayon tolérance. Ce qui donne:

$B>20 and _Max($R, $V) * 235 / ($B-20) <= 128 (je ratisse large)

...sachant que tu pourras toujours trouver un vague bleu en dehors.

A mon avis le problème est mal posé, il n'y a aucune utilité à étiqueter les couleurs comme étant bleu ou pas bleu. Je pense que ce qui intéresse notre coquin, c'est de séparer le bleu du blanc. Par exemple, j'ai le dessin d'un chiffre inconnu en blanc sur fond bleu et je veux deviner ce chiffre par comparaison avec des modèles. Au lieu de décider si une couleur est bleu ou pas bleu, on aurait à choisir entre plutôt bleu ou plutôt blanc.

Je ne sais pas me représenter visuellement l'ensemble des couleurs HSL, peut-être un cône? Je vais regarder ça un de ces jours.
Bon dimanche.

Re: recherche couleur plutot bleue

Posté : dim. 16 juil. 2017 14:06
par jchd
Je ne sais pas me représenter visuellement l'ensemble des couleurs HSL
L'info HSL figure dans la fenêtre de palette Windows sous l'appellation Teinte (Hue), Saturation & Luminance.

Re: recherche couleur plutot bleue

Posté : dim. 16 juil. 2017 14:41
par orax
Je pense qu'il veut plutôt parler de la représentation géométrique en 3D des couleurs (cube, cône, cylindre, etc.).

Re: recherche couleur plutot bleue

Posté : lun. 24 juil. 2017 23:29
par IsLaMalice
#include <Color.au3>
_ColorGetBlue ( $iColor )


merci, c'est juste cela que je cherchais.

Désolé d'avoir lancé tout un débat sur bleu, plutôt bleu, joli bleu ? bleu d'auvergne contre bleu de bresse, ou fourme d'ambert / roquefort

Re: recherche couleur plutot bleue

Posté : mer. 26 juil. 2017 07:36
par jchd
Ce qui fait la même chose et, à la fois, contredit le post d'origine : "plutôt dans les bleus"