Re: [Gimp-user] Histogramm -- values
- From: Ofnuts <ofnuts laposte net>
- To: gimp-user-list gnome org
- Subject: Re: [Gimp-user] Histogramm -- values
- Date: Wed, 27 Nov 2013 13:21:17 +0100
On 11/25/2013 01:51 PM, Elle Stone wrote:
On 11/25/2013 12:16 AM, scl wrote:
Hi,
thank you, Wolfgang, for your reply and sorry I couldn't answer earlier.
On 19.11.2013 at 5:14 AM Wolfgang Hugemann wrote:
>> I'm for using the words value, tonal value, brightness, lightness
etc.
>> consistently to avoid further confusion.
>> What are the 'officially defined' or 'most commonly used' names and
>> meanings in these contexts for you, the users?
>
> Do you think it is the right approach to ask the users? I would
rather
> suggest asking someone who has a thorough understanding of colour
spaces
> and alike. I could ask Fred Weinhaus
(www.fmwconcepts.com/imagemagick)
> to give that a look, as he has a deep understanding of the matter.
Asking someone with a thorough understanding of the topic is the
rationale behind asking the users. The large amount of GIMP users
and the assumption that there must be at least some among them with
a thorough knowledge led me to my proposal. Yes, it's not perfect,
but at least one step into the right direction. If you have an expert
I'd be glad if you asked him and reported back.
Another point that needs clarification is the use and meaning of the
word 'Value' in the Layer and Painting modes.
Elle Stone and Nicolas Robidoux, can you please also have a
look on this topic? Thank you in advance.
This post is only about the word "Value" as used in Gimp's Histogram
and Levels dialog. I don't know if the "Value" in the blending mode is
the same as the Value in the histogram and Levels. Apologies in
advance for a long post.
XYZ is a model of how humans actually perceive color.
RGB refers to a convenient subset of all possible XYZ values. The
simplest possible subset of all possible XYZ values is determined by
picking red, green, and blue primaries in XYZ space, plus a black
point and a white point, plus a tone response curve (TRC) to create a
matrix RGB color space such as sRGB.
Above is covered in http://ninedegreesbelow.com/photography/xyz-rgb.html
So RGB is mathematically derived from XYZ. In turn the various
HSL/HSV/HSI color space models are mathematically derived from RGB. So
first you pick an RGB color space. Then you calculate HSL/HSV/HSI
values. The question is "why"? Why not just use the RGB values directly?
According to Wikipedia
(https://en.wikipedia.org/wiki/HSV_color_space#Motivation), the answer
is because apparently RGB isn't intuitively obvious to us end-users of
graphics programs, and also (here's the real reason) HSL/HSV
calculations are computationally cheaper than RGB calculations, which
made a difference back in the 1970s and 80s and 90s, but not so much
today because computer hardware is exponentially faster than it used
to be.
The question is Gimp's term "Value". The HSL/HSV/HSI models start with
RGB and then define more or less adequate measures of:
*Hue (whether it's red, blue, green, or some in-between color)
*Saturation (whether it's very close to or far from the XYZ neutral
axis connecting the RGB color space's white point and black point)
*Some measure of "Luminance". "Luminance" is a physical measure (based
on real properties of actual light) of how bright something is
(speaking loosely), or how much light reflects off of it in the
direction of the viewer's eyeballs (speaking more precisely). Luminace
happens to be equal to the "Y" of the equivalent XYZ value for the
given RGB values in any specified RGB color space.
If your goal is to represent what people see out there in the world,
rather than to make computationally cheaper calculations, none of the
HSX models are any good. See the nice illustration in the
"disadvantages" section of the Wikipedia article:
https://en.wikipedia.org/wiki/HSV_color_space#Disadvantages, and then
read the paragraph following the illustration.
To illustrate the problem with numbers, let's pick an RGB color space,
sRGB. Then pick some colors and calculate Value, Lightness, and
Intensity. Then divide each value by 255 to put them on a scale from 0
to 1 so we can compare them to the equivalent XYZ "Y" value. The L, I,
and V equations are from the Wikipedia article:
Lightness L = The sum of the maximum ("M") and minimum ("m") RGB
values for the RGB values for the color, divided by two = (M + m)/2
Intensity I = one third of the sum of R, G, and B = (R + G + B)/3.
Value V = the maximum of R, G, and B = M. This is what Gimp uses in
the Histogram and Levels. I'm not sure what Curves does.
Below the word "value" (lower case) means "the numerical value" of the
RGB coordinates of a color as specified in a particular RGB color space.
Let's pick the reddest possible red in the sRGB color space, at
8-bits, which is (255,0,0). The maximum RGB value of reddest sRGB red
is 255. The minimum RGB value is 0.
The Lightness is (0+255)/2 =127.5. Divide by 255= 0.500000
The Value is 255. Divide by 255= 1.000000
The Intensity is (255+0+0)/3 = 85. Divide by 255= 0.333333
Now let's pick sRGB middle gray: (119,119,119). The maximum value of
sRGB middle gray is 119. The minimum value is also 119.
Lightness=(119+119)/2 = 119. Divide by 255= 0.466667
The Value is 119. Divide by 255= 0.466667
The Intensity is (119+119+119)/3 = 119. Divide by 255= 0.466667
So how close are V, L, and I to the actual XYZ "Y" luminance?
xicclu -s255 argyll-sRGB.icm
255 0 0 [RGB] -> 0.436035 0.222443 0.013901 [XYZ]
Y (Luminance) = 0.222443
119 119 119 [RGB] -> 0.233189 0.207916 0.428216 [XYZ]
Y (Luminance) = 0.207916
So all of the HSX models do a bad job of estimating actual real world
Luminance.
There's another problem with these HSX models: Change the color space
and the HSL/HSV/HSI values stay the same, but of course the
**meaning** of the RGB values from which HSL/HSV/HSI are calculated
changes drastically. Here are the Luminance values for the ProPhotoRGB
color space, using the same RGB values as above:
xicclu -s255 Rimm-elleV2-g180.icc
255 0 0 [RGB] Y = 0.288040
119 199 199 RGB] Y = 0.254242
So it sounds like I'm saying that Gimp's use of Value from HSV is a
bad thing for Histograms and Levels. Actually, I'm not. The question
is what is the point of a histogram, and what is the editing purpose
of Levels?
The point of a histogram is to show the distribution of RGB values in
the image, in the RGB color space that the image is in. When I edit an
image, when I adjust Levels, I want to know when I'm clipping RGB
values. I'm not so concerned about what the equivalent "Luminance/Y"
value is. Adjusting the left and right sides of the Levels, the
image's "white point" and "black point", is arguably the most
important step in image editing, and where you start to clip pixels at
the top and bottom of the histogram is a crucial piece of information.
If Gimp used Intensity or Lightness on the histogram and on the Levels
dialog, that would be singularly useless information from an editing
point of view.
But Gimp's "Value" gives the maximum of R, G, and B. So I know that I
can adjust an image's white point using Gimp Levels upper right hand
slider all the way to the right edge of the histogram and not clip any
pixels.
I wish Gimp also had a Minimum histogram, too. At present we don't
have a histogram that shows the minimum of R, G, and B. So sliding the
left hand upper Levels slider to set the image black point just by
looking at the Value (Maximum) histogram is misleading. Sometimes very
misleading. It can result in a whole lot of clipped pixels, whereas
switching to Curves would allow to compress rather than clip, if the
user knew they were about to clip pixels.
If Gimp calculated the XYZ "Y" Luminance value, that would be useful
as a blending mode, and also useful in a histogram as an overview of
the image's distribution of light and dark, but not as useful for
actually setting the image black and white point as the mathematically
simpler "Minimum" (which we don't have at present) and "Maximum"
(which we do have, only it's called "Value").
If I were designing the Levels and Histogram interfaces, I'd change
the word "Value" to "Maximum RGB" and I'd add the equivalent "Minimum
RGB" Histogram. And I'd offer the option to view the RGB channels in
the Levels dialog just like you can in the Histogram, so you could
move the sliders and see which channels are being clipped.
Having a Luminance histogram would also be nice to show the actual
distribution of Luminance values. A Luminance histogram would be
constant regardless of the color space the image was in.
Elle
__
Fascinating... of course this kind of small details also lurks in
Color/Desaturate, but where I miss them the most is in the layer blend
modes. Color/Hue/Saturation/Value are very hard to work with...
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]