I have written CircuitPython code to receive color change commands via USB serial as well as Bluetooth
(Uart and Color Picker) on the LED Glasses.
But there's a color shift when brightness is changed. Any advice?
My original post is here:
viewtopic.php?f=47&t=189406
ADABOX 2020 LED Glasses color consistency during intensity c
Moderators: adafruit_support_bill, adafruit
Please be positive and constructive with your questions and comments.
- RufusVS2020
- Posts: 64
- Joined: Thu Nov 19, 2020 6:31 pm
- johnpark
- Posts: 985
- Joined: Wed Mar 25, 2009 2:15 pm
Re: ADABOX 2020 LED Glasses color consistency during intensi
Perhaps try using a gamma correction LUT https://learn.adafruit.com/led-tricks-g ... -quick-fix
- RufusVS2020
- Posts: 64
- Joined: Thu Nov 19, 2020 6:31 pm
Re: ADABOX 2020 LED Glasses color consistency during intensi
On a quick read, it looks like gamma correction is to addressed the perceived brightness, but applies the same adjustment to alljohnpark wrote:Perhaps try using a gamma correction LUT https://learn.adafruit.com/led-tricks-g ... -quick-fix
3 color components. The issue I'm seeing is if I have a yellow at, say (200,200,0), but then reduce that to (50,50,0), not only has
the led gotten less bright, but it is also not the same yellow, as it has shifted to more-green yellow.
I'll read further in that article to see if they address this color blending that I am talking about.
- johnpark
- Posts: 985
- Joined: Wed Mar 25, 2009 2:15 pm
Re: ADABOX 2020 LED Glasses color consistency during intensi
That color perception issue is one of the things gamma correction sometimes addresses, so it may help. Sometimes this is due to the brightness of one color component becoming perceptually darker or brighter at a different rate than one of the other color components, which throws off the mixed hue.
Developing a look-up table that solves a particular display's issues can help with both brightness and hue problems.
Developing a look-up table that solves a particular display's issues can help with both brightness and hue problems.
- RufusVS2020
- Posts: 64
- Joined: Thu Nov 19, 2020 6:31 pm
Re: ADABOX 2020 LED Glasses color consistency during intensi
So it sounds like my question ends up being: Is there a gamma table of tuples appropriate for the LEDGlasses leds?johnpark wrote:That color perception issue is one of the things gamma correction sometimes addresses, so it may help. Sometimes this is due to the brightness of one color component becoming perceptually darker or brighter at a different rate than one of the other color components, which throws off the mixed hue.
Developing a look-up table that solves a particular display's issues can help with both brightness and hue problems.
And the answer is... Probably not, but you can build one yourself, Rufus.
My guess is I should take the gamma table, and shift it up and down for each component until the color seems correct at each index. Or something like that.
Would this have something to do with White Balance?
- pburgess
- Posts: 4161
- Joined: Sun Oct 26, 2008 2:29 am
Re: ADABOX 2020 LED Glasses color consistency during intensi
You might need three separate gamma tables (r, g, b), with a different exponent and/or top value for each. This is the most likely outcome. I have no idea what the exponents and top values would be for these LEDs, so it’d require some experimentation.
Ugly things can also happen if anything’s using 16-bit “565” color in an interim step, but I don’t think CircuitPython does that, only Arduino and the GFX library. I think. But if it’s this, there’s shenanigans we could do to mask out the extra green bit. (Minimal code exhibiting the problem would be helpful.)
Also RGB LEDs can shift color when viewed off-angle…and on the glasses, the LEDs (especially the rings) are rotated at different angles.
Ugly things can also happen if anything’s using 16-bit “565” color in an interim step, but I don’t think CircuitPython does that, only Arduino and the GFX library. I think. But if it’s this, there’s shenanigans we could do to mask out the extra green bit. (Minimal code exhibiting the problem would be helpful.)
Also RGB LEDs can shift color when viewed off-angle…and on the glasses, the LEDs (especially the rings) are rotated at different angles.
- RufusVS2020
- Posts: 64
- Joined: Thu Nov 19, 2020 6:31 pm
Re: ADABOX 2020 LED Glasses color consistency during intensi
After a little testing I found that if I used a ratio of 5:3:3 on my RGB values, the darken/lighten effects seemed to track color-wise much better. e.g. dim yellow looked like dim yellow rather than dim-greenish yellow. So if I couple that adjustment along with the gamma table, I should get to a good darkening-lightening effect. I'm sure those ratios could use some tweaking, perhaps by someone with proper equipment (or better eyes), but I think this will do for me. Thanks for the tips.
- johnpark
- Posts: 985
- Joined: Wed Mar 25, 2009 2:15 pm
Re: ADABOX 2020 LED Glasses color consistency during intensi
That's great, glad to hear it helps.
Please be positive and constructive with your questions and comments.