2016-11-23 5 views
0

이미지를 [1 2 3; 4 5 6; 7 8 9] 매트릭스. 주어진 이미지를 그레이 스케일 이미지로 변환하는 방법. 각 픽셀의 r, g, b 값을 구해야한다는 것을 알고 있습니다. 그리고 0.2 * R + 0.7 * G + 0.1 * B 공식을 사용하여 각 픽셀의 그레이 스케일 값을 얻을 수 있습니다. 그러나 어떻게 각 픽셀의 r, g, b 값을 얻을 수 있습니까? 또는 주어진 이미지를 회색조로 변환하는 완전히 다른 방법이 있습니까?매트릭스 표현으로 주어진 이미지를 어떻게 그레이 스케일 이미지로 변환 하시겠습니까?

+0

당신은 아마, R, G, B 색상의 각각에 할당되는 비트 수 알아봐야의 RGB 벡터에 행렬에서 각 숫자를 변환하고 벡터의 변환 공식을 적용 . – letmutx

+0

RGB 이미지로 픽셀 당 총 24 비트입니다. 따라서 각 채널에 대해 8 비트입니다. 행렬의 각 숫자를 RGB 벡터로 어떻게 변환 할 수 있습니까? – candreva

+0

이것은 사용하려는 프로그래밍 언어에 따라 크게 달라집니다. – letmutx

답변

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);