Comment obtenir la longueur d'onde d'un pixel à l'aide de RVB?
J'ai un projet qui permettrait de classer la couleur d'un pixel. Si elle est rouge,violet, orange ou tout simplement n'importe quelle couleur dans la roue des couleurs. Je sais qu'il y a plus de 16 millions de combinaisons de couleurs pour les pixels. Mais j'ai été capable de lire une page web qui indique son possible pour moi de faire mon projet en utilisant les longueurs d'onde de la couleur. Merci de me donner la formule pour calculer la longueur d'onde à l'aide de valeurs RVB. Merci!
- Veuillez fournir un lien vers la page web que vous avez mentionné.
- Que faire si une couleur n'est pas dans la roue de couleur, grise par exemple? Ces couleurs n'ont pas une longueur d'onde.
- ce sujet de calibration de l'écran?
- Hmm, cette question est liée à un langage de programmation? Cependant, pour ne pas que la tâche facile. Regardez ceci pour commencer: Ce que la longueur d'Onde Va de pair Avec une Couleur?.
- Vous pouvez convertir de sRGB CIE XYZ qui devrait rendre plus facile, mais je ne peux pas trouver une conversion directe de qui que ce soit.
- J'ai couru à travers une bibliothèque Python ColorPy qui prétend faire l'inverse, le mappage d'une longueur d'onde de RVB. Peut-être qu'il peut être inversée?
Vous devez vous connecter pour publier un commentaire.
Une couleur pure a une longueur d'onde (une seule couleur LED ont une longueur d'onde spécifique).
Le rouge, le vert et le bleu ont chacun une gamme de longueur d'onde. Toutefois, lorsque vous effectuez une couleur RVB, vous ajoutez ces longueurs d'onde ensemble, ce qui ne sera PAS vous donner une nouvelle longueur d'onde. L'œil ne peut distinguer un jaune composé d'une longueur d'onde de celle de l'ajout de rouge et de vert (juste la façon dont fonctionne l'œil).
Je vous recommande la lecture sur la théorie de la couleur
http://en.wikipedia.org/wiki/RGB_color_model
Bien RVB pour un moniteur de cartes à 3 indépendant des niveaux de Rouge, Vert et Bleu de la lumière, donc il y a (pour la plupart) 3 longueurs d'onde distinctes présent de tout un perçue couleur.
MAIS Si vous pouvez convertir votre RVB de la couleur de la valeur à son équivalent LGV, le H de la partie (Hue) est la couleur dominante dans la mesure où la longueur d'onde augmente si vous êtes prêt à ignorer la saturation (pensez à la blancheur).
Basé sur que vous pourriez approximative la longueur d'onde dominante de couleur en fonction de sa valeur H.
Lumière rouge est d'environ 630–740nm longueur d'onde, le Violet est à peu près 380–450 nm.
Travail de la longueur d'onde est un peu délicat, et comme Goblin mentionné, n'est pas toujours possible (un autre exemple est la couleur obtenue en mélangeant des quantités égales de lumière rouge et bleue. Que le violet n'a pas une seule longueur d'onde).
Mais si tout ce que vous voulez faire est d'identifier la couleur par son nom, puis le HSV modèle serait bon pour l'utiliser. Le HSV est la Teinte (d'où la couleur est autour de la roue de couleur), la Saturation (combien de couleurs y est, plutôt que d'être une nuance de noir/gris/blanc) et la Valeur (comment lumineux ou sombre, le pixel est). Dans ce cas, la Teinte est probablement exactement ce que vous voulez.
Si vous utilisez un .NET la langue, vous avez de la chance. Voir la Couleur.GetHue Méthode qui fait tout le travail pour vous.
Sinon, voir HSV sur Wikipedia pour plus de détails.
En fait, si vous avez R, G et B comme des chars allant de 0.0 à 1.0 (au lieu d'entiers de 0 à 255, par exemple), alors:
Lors de la conversion de RVB pour le HSV vous multipliez H' de 60 degrés, mais pour vos fins de H' est probablement pas un problème. Il sera un flotteur allant de 0 à 6 (ou presque). 0 est le Rouge (comme c'est le 6). 1 est Jaune, avec des valeurs entre 0 et 1 étant ombragée entre le Rouge et le Jaune. Afin de 0,5 serait d'Orange. Les principales étapes sont:
Espère que ça aide.
M = m
partie, la façon dont de nombreuses nuances de grey-il y avoir?C = 0
qui fait sens, évidemment, mais, en réalité, une grise est de toutes les couleurs, comme le blanc, avec une certaine quantité d'absorption. C'est seulement lorsque vous atteignez 100% d'absorption, qui est noir, que vous ne pouvez pas savoir si l'ensemble de la longueur d'onde sont présents ou pas.http://en.wikipedia.org/wiki/Visible_spectrum
C'est possible. Voir ci-dessus. Fond gris, apparemment, la rend plus facile. Vous pourriez obtenir quelque chose comme cela sur votre propre, et même l'améliorer. Mais pour le faire avec précision le coût sera majeur de dollars. U aura besoin d'une colorimétrie de l'expert, un écran calibré et de l'environnement de visualisation (depuis que la longueur d'onde dominante de votre pixel est juste les moyens ce que monochromatique de longueur d'onde, il se rapproche sur votre moniteur calibré dans votre calibré environnement de visualisation). Tout cela sera à quelques milliers de dollars. Le travail effectué sur le lien ci-dessus, indiqué sur wikipédia, ne semble pas exact, mais c'est probablement ce que vous voulez.