Why does rgb2gray use these weights for the weighted sum?

47 Ansichten (letzte 30 Tage)
Thomas Huepf
Thomas Huepf am 18 Aug. 2015
Bearbeitet: kokila Mani am 30 Nov. 2017
From the documentation I find: "rgb2gray converts RGB values to grayscale values by forming a weighted sum of the R, G, and B components:
0.2989 * R + 0.5870 * G + 0.1140 * B"
Depending on which format you have it is sometimes more correct to use 0.2126 * R + 0.7156 * G + 0.0722 * B. Maybe the weights which rgb2gray.m uses apply more often (in a standard case where the user is not so specific about how precisely the conversion is done)? I am this 'lazy' kind of user but I would have choosen the alternative weights. But I guess matlab knows better than I - so I would like to know why they prefere their choise.

Antworten (1)

blaat am 18 Aug. 2015
Bearbeitet: blaat am 18 Aug. 2015
These values come from the BT.601 standard for use in colour video encoding, where they are used to compute luminance from an RGB-signal. It was probably optimised for accurate perceived brightness.
  3 Kommentare
kokila Mani
kokila Mani am 30 Nov. 2017
Bearbeitet: kokila Mani am 30 Nov. 2017
The image shows the sensitivity of our eye cones vs wavelength of primary colour(Red,green,blue).According to which green has high sensitivity then comes red,and blue. so if you see the weights "(0.2989 * R + 0.5870 * G + 0.1140 * B") we have high value for green weight(0.5870),then red(0.2989),then blue(0.1140).
Note:This is not an explanation for exact weight figure.

Melden Sie sich an, um zu kommentieren.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by