Questions about the rgb2gray function
4 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
志远 任
el 10 de Sept. de 2022
Comentada: 志远 任
el 10 de Sept. de 2022
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 comentarios
Respuesta aceptada
Stephen23
el 10 de Sept. de 2022
Editada: Stephen23
el 10 de Sept. de 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:
Más respuestas (0)
Ver también
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!