Re: [Gimp-user] Histogramm -- values
- From: Elle Stone <ellestone ninedegreesbelow com>
- To: gimp-user-list gnome org, scl gplus gmail com
- Subject: Re: [Gimp-user] Histogramm -- values
- Date: Mon, 25 Nov 2013 07:51:14 -0500
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
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]