EDIT: I'm not fully clear on terminology here, what I previously understood to be called "brightness" seems poorly defined. I think I am asking about radiant intensity, that is, the measurable intensity of energy emitted, not weighted for subjective perception.

You can calculate subjective brightness of an RGB value by weighting the three channels according to their perceived brightness, e.g. with something like:

(0.21 × R) + (0.72 × G) + (0.07 × B)

But, ignoring human biology and perception, is there an accepted way to calculate the objective, theoretical "light intensity" of an RGB value? (Theoretical because the real value will vary between displays)

My first thought, given that the RGB values correspond to the intensity of the pixel's three lights, is to take the average:

(R + G + B) ÷ 3

So, for instance, that makes yellow (#ffff00) twice as intense as red (#ff0000).

That makes sense, thinking about two lights being on rather than one, but looking at the colours I would have guessed they were of somewhat equal intensity.

Unlike dark yellow (#808000) which actually is equal to the red in intensity!

I suspect there isn't a linear relationship which is confusing the issue.

Can objective light intensity be calculated from an RGB value?

  • $\begingroup$ I think it is possible but solution depends on definition of light intensity. So I would suggest to specify what do you mean by that $\endgroup$
    – Derag
    Commented May 9, 2017 at 14:59
  • $\begingroup$ Are you sure? According to wiki luminous intensity is based on the luminosity function, a standardized model of the sensitivity of the human eye $\endgroup$
    – Derag
    Commented May 9, 2017 at 15:20
  • $\begingroup$ Yeah.. you're right again $\endgroup$
    – jsh
    Commented May 9, 2017 at 15:21
  • 3
    $\begingroup$ I suppose you could multiply the R,G,B by the inverse wavelength (frequency) of said light to approximate its power, although this assumed R,G,B are 3 discrete peaks at 3 different wavelengths when in reality the power is spread across some overlapping range. $\endgroup$
    – PaulHK
    Commented May 10, 2017 at 2:12
  • $\begingroup$ 0..255, or 0..1 equals Black to White, but 128 (or 0.5) is NOT the actual middle of value between 0 and 1 when it comes to display output. The middle is somewhere around 158, iirc. $\endgroup$
    – z0rberg's
    Commented May 15, 2017 at 11:45

1 Answer 1


The short answer: no, but if you are interested in details, please keep reading (:

About lighting units

Light “brightness” is indeed quite poor/ambiguous layman’s definition for brightness of a light source. Below is a list of different lighting properties/units commonly used in lighting calculations that define the light “brightness”. I listed both radiometric and photometric [in brackets] properties/units. Radiometric units are Human Visual System (HVS) neutral "physical" units defined based on Watts (W), while photometric units are HVS weighted units defined based on Lumens (lm).

Photometric units are commonly used in rendering because practically all consumer image input and output devices operate in these units as they are designed & optimized for image acquisition & consumption by normal tristimulus (LMS) HVS. Proper conversion between photometric & radiometric units isn’t simply a matter of multiplication by some factor (like between kilometers & miles or kilograms & pounds), but different projection from Spectral Power Distribution (SPD) of visible light spectrum (explained later). Some people use constant luminous efficacy of 683 lm/W to convert between the units, but this has very little touch with reality and results in unrealistic values.

  • Radiant Flux in Watts (W) [Luminous Flux in Lumen (lm)] - Total power emitted by a light (regardless of shape or size)
  • Radiant Exitance in W/m^2 [Luminous Exitance in lm/m^2 or Lux] - Power emitted by a light per unit area to all directions (think different size light sources with equivalent Radiant Flux)
  • Radiant Intensity in W/sr (sr=steradian) [Luminous Intensity in lm/sr or Candela] - Power emitted by a light to certain direction (think of a spot vs omni light with equivalent Radiant Flux)
  • Radiance in W/sr/m^2 [Luminance in lm/sr/m^2 or Nits] - Power that falls on a patch of surface from some direction (e.g. pixel on screen or patch of surface from certain direction)
  • Irradiance in W/m^2 [Illuminance in lm/m^2 or Lux] - Power that falls on a patch of surface regardless of direction (e.g. hemispherical sky illuminating a patch of ground).

It’s important to understand the difference between these properties when performing lighting calculations, just like it is important not to confuse properties of length and speed when doing physics calculations. There are various other light properties but having good grasp of the above gets you pretty far already.

Visible light spectrum and RGB projection

Visible light spectrum contains “infinite” number of electromagnetic wavelengths from ~390nm to ~730nm. enter image description here

The power spectrum emitted by light is defined with SPD (in W/m^2/nm) and you can calculate the “HVS neutral” physical light intensity, i.e. Radiant Exitance $M_e$ (in W/m^2) by integrating the spectrum over the visible light range: $$M_e=\int_{390}^{730} S(\lambda)d\lambda$$ However, RGB color space is defined in photometric units by projecting SPD using HVS weighted color matching functions. This projection is done because storing SPD would consume immense amount of memory for little gain for image visualization purposes. The projection of SPD to RGB is defined with integrals over the visible light range as follows: $$R=\int_{390}^{730} S(\lambda)\bar{r}(\lambda)d\lambda$$ $$G=\int_{390}^{730} S(\lambda)\bar{g}(\lambda)d\lambda$$ $$B=\int_{390}^{730} S(\lambda)\bar{b}(\lambda)d\lambda$$ CIE 1931 defines standard observer RGB color matching functions as shown below, based on measurement of 10 human observers

enter image description here

As you can see the functions are not discrete wavelengths for RGB, but rather weighted averages of (overlapping) wavelengths.

It’s not possible to unambiguously calculate Radiant Exitance from RGB values because many different SPD's may resulting different Radiant Exitance but project to the same RGB. This is called metamerism.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.