recherche couleur plutot bleue

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
IsLaMalice
Niveau 4
Niveau 4
Messages : 50
Enregistré le : lun. 03 avr. 2017 23:31
Status : Hors ligne

recherche couleur plutot bleue

#1

Message 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
Avatar du membre
jchd
AutoIt MVPs (MVP)
AutoIt MVPs (MVP)
Messages : 2272
Enregistré le : lun. 30 mars 2009 22:57
Localisation : Sud-Ouest de la France (43.622788,-1.260864)
Status : Hors ligne

Re: recherche couleur plutot bleue

#2

Message par jchd »

Sachant que du blanc pur est FFFFFF, ce test me semble insuffisant. Mieux vaudrait convertir en Hue et comparer à un intervalle.
La cryptographie d'aujourd'hui c'est le taquin plus l'électricité.
IsLaMalice
Niveau 4
Niveau 4
Messages : 50
Enregistré le : lun. 03 avr. 2017 23:31
Status : Hors ligne

Re: recherche couleur plutot bleue

#3

Message 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
Modifié en dernier par IsLaMalice le mer. 12 juil. 2017 23:15, modifié 1 fois.
Avatar du membre
orax
Modérateur
Modérateur
Messages : 1479
Enregistré le : lun. 23 mars 2009 04:50
Localisation : ::1
Status : Hors ligne

Re: recherche couleur plutot bleue  

#4

Message 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.
De petits détails peuvent faire toute la différence. — Quand la boule de neige commence à rouler… poussez-la. (Columbo)
mdanielm
Membre émérite
Membre émérite
Messages : 254
Enregistré le : mer. 11 déc. 2013 19:48
Status : Hors ligne

Re: recherche couleur plutot bleue

#5

Message par mdanielm »

Bonjour,

Pour moi, il n'y a qu'une formule valable:
_Max(_Max(R, V), 255-B) <= 20 (rayon de tolérance)
Avatar du membre
walkson
Modérateur
Modérateur
Messages : 1020
Enregistré le : ven. 12 août 2011 19:49
Localisation : Hurepoix
Status : Hors ligne

Re: recherche couleur plutot bleue

#6

Message 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....
Cordialement,
Walkson
"Horas non numero nisi serenas " Le canon de midi
(Je ne compte que les heures heureuses)
mdanielm
Membre émérite
Membre émérite
Messages : 254
Enregistré le : mer. 11 déc. 2013 19:48
Status : Hors ligne

Re: recherche couleur plutot bleue

#7

Message 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.
Avatar du membre
jchd
AutoIt MVPs (MVP)
AutoIt MVPs (MVP)
Messages : 2272
Enregistré le : lun. 30 mars 2009 22:57
Localisation : Sud-Ouest de la France (43.622788,-1.260864)
Status : Hors ligne

Re: recherche couleur plutot bleue

#8

Message 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
La cryptographie d'aujourd'hui c'est le taquin plus l'électricité.
mdanielm
Membre émérite
Membre émérite
Messages : 254
Enregistré le : mer. 11 déc. 2013 19:48
Status : Hors ligne

Re: recherche couleur plutot bleue

#9

Message 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.
Avatar du membre
jchd
AutoIt MVPs (MVP)
AutoIt MVPs (MVP)
Messages : 2272
Enregistré le : lun. 30 mars 2009 22:57
Localisation : Sud-Ouest de la France (43.622788,-1.260864)
Status : Hors ligne

Re: recherche couleur plutot bleue

#10

Message 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.
La cryptographie d'aujourd'hui c'est le taquin plus l'électricité.
Avatar du membre
orax
Modérateur
Modérateur
Messages : 1479
Enregistré le : lun. 23 mars 2009 04:50
Localisation : ::1
Status : Hors ligne

Re: recherche couleur plutot bleue

#11

Message 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.).
De petits détails peuvent faire toute la différence. — Quand la boule de neige commence à rouler… poussez-la. (Columbo)
IsLaMalice
Niveau 4
Niveau 4
Messages : 50
Enregistré le : lun. 03 avr. 2017 23:31
Status : Hors ligne

Re: recherche couleur plutot bleue

#12

Message 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
Avatar du membre
jchd
AutoIt MVPs (MVP)
AutoIt MVPs (MVP)
Messages : 2272
Enregistré le : lun. 30 mars 2009 22:57
Localisation : Sud-Ouest de la France (43.622788,-1.260864)
Status : Hors ligne

Re: recherche couleur plutot bleue

#13

Message par jchd »

Ce qui fait la même chose et, à la fois, contredit le post d'origine : "plutôt dans les bleus"
La cryptographie d'aujourd'hui c'est le taquin plus l'électricité.
Répondre