一.彩色圖像簡介
在RGB色彩空間,圖像深度與色彩的映射關系主要有真彩色、偽彩色和調配色。
真彩色是指在組成一幅彩色圖像的每個像素值中,有R,G,B三個基色分量,每個基色分量直接決定顯示設備的基色強度,這樣產生的彩色稱為真彩色,是真實的原圖彩色。
偽彩色圖像的每個像素值實際上是一個索引值或代碼,該代碼值作為色彩查找表CLUT中某一項的入口地址,根據該地址可查找出包含實際R,G,B的強度值。這種用查找映射的方法產生的色彩稱為偽彩色。色彩查找表CLUT是一個事先做好的表,表項入口地址也稱為索引號。彩色圖像本身的像素數值和色彩查找表的索引號有一種變換關系,這種關系可以是系統定義的,也可以是用戶自己定義的變換關系。使用查找得到的數值顯示的彩色是真的,可又不是圖像本身的顏色,因為其沒有完全反映原圖的彩色,所以稱其為偽彩色。
調配色的獲取是通過每個像素點的R,G,B分量分別作為單獨的索引值進行變換,經相應的色彩查找表找出各自的基色強度,用變換后的R,G,B強度值產生色彩。
二.灰度圖像簡介
灰度是描述灰度圖像內容的最直接的視覺特征。它指黑白圖像中點的顏色深度,范圍一般從0到255,白色為255,黑色為0,故黑白圖像也稱灰度圖像。灰度圖像矩陣元素的取值通常為[0,255],因此其數據類型一般為8位無符號整數,這就是人們通常所說的256級灰度。
三.彩色圖像轉化為灰度圖像
彩色圖像轉換為灰度圖像時,需要計算圖像中每個像素有效的亮度值,其計算公式為:
Y = 0.3R + 0.59G + 0.11B
代碼如下:
clear all;
close all;
I = imread('lenna.png');
[M N H] = size(I);
I2 = zeros(M, N);
for x = 1 : M
for y = 1 : N
A = double([I(x, y, 1) I(x, y, 2) I(x, y, 3)]);
B = [0.3; 0.59; 0.11];
[gray] = A * B; % 計算灰度值
I2(x, y) = gray;
end
end
imshow(uint8(I2));
四.灰度圖像轉換為彩色圖像
將灰度圖像轉換為彩色圖像,稱為灰度圖像的偽彩色處理。
偽彩色處理技術的實現方式有很多,如:灰度分割法、灰度級-彩色變換法、濾波法等等。以下采用的是灰度級-彩色變換法,這是將來自傳感器的灰度圖像送入三個不同特征的R、G、B變換器,然后將三種變換器的不同輸出分別送到彩色顯示器進行顯示的技術。
映射關系如下,其中R(x,y)、G(x,y)、B(x,y)分別表示R、G、B通道的顏色值,f(x,y)表示特定點灰度圖像的灰度值,f是所選灰度圖像的灰度值。



代碼如下:
clear all;
close all;
I = imread('lenna.jpg');
[M N] = size(I);
I2 = zeros(M, N, 3);
for x = 1 : M
for y = 1 : N
if I(x, y) <= 127 % R
I2(x, y, 1) = 0;
elseif I(x, y) <= 191
I2(x, y, 1) = 4 * I(x, y) - 510;
else
I2(x, y, 1) = 255;
end
if I(x, y) <= 63 % G
I2(x, y, 2) = 254 - 4 * I(x, y);
elseif I(x, y) <= 127
I2(x, y, 2) = 4 * I(x, y) - 254;
elseif I(x, y) <= 191
I2(x, y, 2) = 255;
else
I2(x, y, 2) = 1022 - 4 * I(x, y);
end
if I(x, y) <= 63 % B
I2(x, y, 3) = 255;
elseif I(x, y) <= 127
I2(x, y, 3) = 510 - 4 * I(x, y);
else
I2(x, y, 3) = 0;
end
end
end
imshow(uint8(I2));
