User Tools

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Next revisionBoth sides next revision
isp:vibrancy [2019/05/09 00:24] – [Implementation overview (HSL color space)] Igor Yefmovisp:vibrancy [2023/09/05 05:46] – [Vibrancy] Igor Yefmov
Line 3: Line 3:
 A vibrancy of a color is a perceived quality that is somewhat similar to Saturation. One could think of it as pure, bright, high chroma color. It is not an absolute measure (like Saturation) and there's no agreed upon definition of what it means to change the vibrancy of a color. A vibrancy of a color is a perceived quality that is somewhat similar to Saturation. One could think of it as pure, bright, high chroma color. It is not an absolute measure (like Saturation) and there's no agreed upon definition of what it means to change the vibrancy of a color.
  
-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 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) ===== ===== Implementation overview (YUV color space) =====
Line 86: Line 86:
 As was described before the main idea of the Vibrancy is that the lowest saturated colors get the most relative boost in Saturation while highly saturated colors get progressively lower boost, up to a "no boost" for the 100% saturated colors. As was described before the main idea of the Vibrancy is that the lowest saturated colors get the most relative boost in Saturation while highly saturated colors get progressively lower boost, up to a "no boost" for the 100% saturated colors.
  
-The boost multiplier therefore depends on the vibrancy factor and the pixel's saturation:+The scale (boostmultiplier therefore depends on the vibrancy factor and the pixel's saturation:
 \[ \[
-scale = 1 + \frac{100 - saturation}{100} * vibrancy \\+scale = 1 + \frac{100 - saturation}{100} * (vibrancy-1) \\
 vibrancy \in [0..1]\\ vibrancy \in [0..1]\\
 saturation \in [0..100]\% saturation \in [0..100]\%
 \] \]
 <code c++>double scale(int _s, double _vib){ // _s is in range [0..100]% <code c++>double scale(int _s, double _vib){ // _s is in range [0..100]%
-  return 1. + (100 - _s) / 100. * _vib;+  return 1. + (100 - _s) / 100. * (_vib - 1);
 }</code> }</code>
 Once the scale (boost) value is calculated - just apply it to the pixels: Once the scale (boost) value is calculated - just apply it to the pixels:

This website uses cookies. By using the website, you agree with storing cookies on your computer. Also, you acknowledge that you have read and understand our Privacy Policy. If you do not agree, please leave the website.

More information