J'ai un ensemble d'images du ciel, certaines avec des nuages et certains sans. p>
Certains sont des cieux bleus clairs, un peu trouble, un peu trouble avec des nuages blancs et gris. P>
Comment puis-je déterminer qu'une valeur RVB particulière est, plus ou moins, bleue? p>
Toute teinte de bleu est 'bleue' - bleu clair, bleu foncé, bleu marine, bleu ciel - ce sont tous bleus. P>
Je veux réduire les couleurs de l'image jusqu'à 16. Ensuite, je veux faire un histogramme de blanc, d'argent, de gris, de bleu et de «tout le reste». P>
Comment savoir de la valeur RVB Qu'est-ce qu'un bleu ou un argent, un blanc ou un gris, ou autre chose? P>
3 Réponses :
Peut-être construire une table avec les valeurs RVB pour chacune des 16 couleurs que vous souhaitez, puis comparez chaque valeur de pixel RVB à chacune des valeurs de votre table. Pour comparer faire une soustraction comme R1-R2 G1-G2 B1-B2, résumez les différences et la convertissez-la en la couleur moins différente. P>
question connexe: comparer les couleurs RVB en C # P>
Apparemment, il existe une sorte de moyen standard de comparer les couleurs que c'est appelé delta e consultez cette question Stackoverflow.com/Questtions/3968179/compar-rgb-colors-in-c
Merci je vais jeter un oeil au delta e et voir ce que je trouve - acclamations
Si les valeurs rouges et vertes sont proches de la même et si la valeur bleue est supérieure aux valeurs rouge et verte, la couleur va être dans la plage bleue. Si les trois valeurs sont à peu près la même, vous avez une version de gris, et s'ils sont tous proches de leur maximum, la couleur aura l'air blanc. Il est impossible d'être beaucoup plus précis que celui-là - vous devrez simplement regarder un sélecteur de couleur et comprendre quelle région a l'air "bleu" à vous. P>
Merci - je regarde les images et je peux maintenant voir la tendance dont vous parlez. J'apprécie le temps que vous avez pris pour me répondre. à votre santé
"Impossible"? Utilisez un espace de couleur différent, c'est-à-dire que vous utilisez la teinte de la couleur au lieu de RVB. Loin d'être impossible.
@Ed s.: En regardant la teinte, il est certainement plus facile des choses, et c'est une bonne suggestion pour l'OP (+1 pour cela), mais quelle gamme pour Hue représente "fondamentalement bleu" à l'OP? J'ai dit que c'était «impossible d'être plus précis» simplement parce que la question n'est pas plus précise. Je note que la réponse que vous avez donnée ne vous rapproche vraiment pas de résoudre la question que moi. Plus précisément, l'OP cherche à discerner "Bleu" de "Blanc", "Silver" et "gris", alors saturation et valeur entrent en jeu. Que vous choisissiez RVB ou HSV, vous regardez toujours les trois composantes.
C'est vrai. Si le problème nécessite plus que quelques seuils simples, l'OP devra utiliser une méthode plus sophistiquée de recherche de la "distance" entre deux couleurs, ce qui pure bleue comme couleur de référence.
RVB n'est pas le meilleur espace de couleur pour travailler pour ce genre de chose. Un espace de couleur telle que HSV (également appelé HSB) fournit un modèle plus intuitif et descriptif pour un couleur donnée. p>
Donc, pour obtenir ce que vous êtes après que vous puissiez utiliser la teinte d'une couleur donnée. Si vous avez affaire à un Le traitement de l'image et la théorie des couleurs en général sont loin des sujets triviaux. Je suggérerais de trouver la méthode la plus simple qui réponde à vos exigences. Cela peut être suffisant pour vous, ou peut-être pas. Sinon, peut-être peut-être que vous pouvez réduire la question pour moi. P>
Réalisez également que vous aurez toujours besoin d'un seuil pour les composants de luminosité et de saturation pour vous assurer de ne pas être en train de traiter de noir, blanc ou gris. P> System.Drawing.Color code> Structure, vous pouvez utiliser le gethue () méthode qui renvoie une valeur de Hue en degrés. Étant donné une roue de teinte comme ce qui suit, vous pouvez définir un seuil supérieur et inférieur (en degrés) pour quelles valeurs bleues vous acceptez. P>
p>
J'ai une copie de Photoshop et je reçois des valeurs différentes de la boîte de dialogue Picker Color Photoshop HSB par rapport à C # Color.getbrightness () et de couleur.Getsaturation. Je suppose que j'ai besoin de trouver une routine de conversion de Photoshop vers C # HSB
La comparaison des couleurs en C # est facile. Déterminer "ce qui est fondamentalement bleu" est la partie difficile.