如何将作为矩阵表示的图像转换为灰度图像?

时间:2016-11-23 15:22:25

标签: image-processing rgb grayscale

将图像视为[1 2 3; 4 5 6; 7 8 9]矩阵。我们如何将给定图像转换为灰度图像。我知道我们需要得到每个像素的r,g,b值。使用0.2 * R + 0.7 * G + 0.1 * B公式,我们可以得到每个像素的灰度值。但是如何得到每个像素的r,g,b值。 或者是否有另一种将给定图像转换为灰度的方法?

1 个答案:

答案 0 :(得分:0)

到目前为止,您需要将每个24位像素值分割为R,G,B分量。以matlab为例:

% If x is a 24 bit string in base 2
r_binary = x(1:8);
g_binary = x(9:16);
b_binary = x(17:24);
r_value = base2dec(r_binary,2);
g_value = base2dec(g_binary,2);
b_value = base2dec(b_binary,2);

% If x is a decimal value
r_value = rem(x,2^8);
g_value = rem(bitshift(x,-8),2^8);
b_value = rem(bitshift(x,-16),2^8);