Matlab中rgb2ycbcr的帮助文档说
如果输入为 uint8,则 YCBCR 为 uint8,其中 Y 在 [16 235] 范围内,Cb 和 Cr 在 [16 240] 范围内。
据我所知,从 RGB 到 YCbCr 的转换公式是
Y = 0.299 R + 0.587 G + 0.114 B
Cb = - 0.1687 R - 0.3313 G + 0.5 B + 128
Cr = 0.5 R - 0.4187 G - 0.0813 B + 128
令 R=0,G=0 和 B=0,我们得到 Y=0,它不在 [16,235] 范围内。令 R=255, G=255 和 B=0,我们得到 Cb=0.5,这也不在 [16, 240] 范围内。
为什么rgb2ycbcr使 Y 在 [16,235] 范围内,而使 Cb/Cr 在 [16,240] 范围内?