为什么我们在应用从rgb转换为ycbcr的转换公式之前将rgb图像转换为双精度?
rgb = im2double(in);
% These equations transform RGB in [0,1] to YCBCR in [0, 255]
out(:,:,1) = 16 + 65.481 * rgb(:,:,1) + 128.553 * rgb(:,:,2) + 24.966 * rgb(:,:,3);
out(:,:,2) = 128 - 37.797 * rgb(:,:,1) - 74.203 * rgb(:,:,2) + 112 * rgb(:,:,3);
out(:,:,3) = 128 + 112 * rgb(:,:,1) - 93.786 * rgb(:,:,2) -18.214 * rgb(:,:,3);
答案 0 :(得分:3)
im2double将RGB图像从0-255范围缩放到0-1范围,这是转换方程所需要的。
此外,图像应采用双重格式,而不是uint8,以便在计算过程中不会丢失精度。如果图像不是双倍的,则结果将四舍五入,并且不太准确。