Questions about the rgb2gray function
1 Ansicht (letzte 30 Tage)
Ältere Kommentare anzeigen
I am trying to convert the RGB pixel (120, 119, 112) to gray pixel, When using the conversion equation '0.299 * R + 0.587 * G + 0.114 * B' provided by the function document, as following codes shows,
uint8(120 * 0.2989 +119 * 0.587 + 112 * 0.114)
the results is 118. But when using rgb2gray function as follows,
im2gray(aa) % aa is a 1x1x3 matrix [120, 119, 112]
the results is 119.
Does anyone knows why? Thanks!
0 Kommentare
Akzeptierte Antwort
Stephen23
am 10 Sep. 2022
Bearbeitet: Stephen23
am 10 Sep. 2022
"does anyone know why?"
The values shown in the documentation are shown only to 3 decimal places.
The actual values used for the conversion are:
format long G
M = inv([1,0.956,0.621;1,-0.272,-0.647;1,-1.106,1.703]); % inv of YIQ->RGB
C = M(1,:).' % the actual values
[120,119,112]*C
im2gray(cat(3,120,119,112)/255)*255
And if you are wondering where that matrix comes from, take a look at the conversions here:
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu White finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!