Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision |
isp:vibrancy [2023/09/05 05:48] – [Implementation overview (HSL color space)] Igor Yefmov | isp:vibrancy [2023/09/05 06:22] (current) – [RGB color space] Igor Yefmov |
---|
Having said that we still want to make a distinction between "changing color's Saturation" and "changing color's Vibrancy" when talking about color corrections of a given image. Both increase the color's [[https://en.wikipedia.org/wiki/Colorfulness#Saturation|Saturation]] but one behaves like a linear Gain increase, applied uniformly to any color. And the other one uses a sliding scale that adjusts the magnitude of change based on the current Saturation level, where the highest multiplication is done for low Saturation colors and highly vibrant (highly saturated, vivid) colors are adjusted on a progressively smaller scale. | Having said that we still want to make a distinction between "changing color's Saturation" and "changing color's Vibrancy" when talking about color corrections of a given image. Both increase the color's [[https://en.wikipedia.org/wiki/Colorfulness#Saturation|Saturation]] but one behaves like a linear Gain increase, applied uniformly to any color. And the other one uses a sliding scale that adjusts the magnitude of change based on the current Saturation level, where the highest multiplication is done for low Saturation colors and highly vibrant (highly saturated, vivid) colors are adjusted on a progressively smaller scale. |
| |
===== Implementation overview (YUV color space) ===== | ===== RGB color space ===== |
| To adjust the saturation of a pixel in RGB space we will follow this general approach: |
| - create a desaturated version of the pixel by converting it to grayscale |
| - interpolate/extrapolate between the original and desaturated pixel |
| |
| FIXME |
| ===== YUV color space ===== |
| |
The goal is to increase the Saturation of each pixel based on its current Saturation level, where the increase factor is inversely proportional to the current value. Given the range of values for ''U'' and ''V'' \(\in[-127..+128]\), the highest increase factor will be around values of ''0'' and as the value gradually nears either end of the spectrum the multiplication coefficient approaches \(1.0\). | The goal is to increase the Saturation of each pixel based on its current Saturation level, where the increase factor is inversely proportional to the current value. Given the range of values for ''U'' and ''V'' \(\in[-127..+128]\), the highest increase factor will be around values of ''0'' and as the value gradually nears either end of the spectrum the multiplication coefficient approaches \(1.0\). |