In the article "Matrix Operations for Image Processing" by Paul Haeberli there is an example described using a matrix to alter the saturation of an image. In the example given the author first converts the image to greyscale using custom values rather than ITU-R Recommendation BT.601 luminance vector.

Could anyone shed some light as to how he calculates those numbers?

Where rwgt is 0.3086, gwgt is 0.6094, and bwgt is 0.0820. This is the luminance vector. Notice here that we do not use the standard NTSC weights of 0.299, 0.587, and 0.114. The NTSC weights are only applicable to RGB colors in a gamma 2.2 color space. For linear RGB colors the values above are better.

  • $\begingroup$ Those values appear to be approximations of 79, 156, and 21 all divided by 256. Paul Haeberli gave those integers already in code dated 1988 and posted in 1990 to the comp.graphics Usenet newsgroup, again without explanation or references for the numbers. Ask him? $\endgroup$ – Olli Niemitalo Dec 8 '15 at 9:46
  • $\begingroup$ Interesting. That's a shade of green... I never even thought to simply send him an email, will do. $\endgroup$ – James South Dec 8 '15 at 22:10

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.