Matlab函式rgb2ind簡介
函式功能:將真彩色圖像轉換為索引圖像。在matlab命令視窗中鍵入doc rgb2ind或help rgb2ind可以獲得更多關於該函式的幫助信息。
該函式將真彩色圖像轉換為索引圖像, 由於RGB圖像一個像素占用三個位元組, 分別存儲R、G、B分量的值,而索引圖像一個像素占用一個位元組。在將灰度圖像轉換為索引圖像時, 是從3個位元組映射到一個位元組的關係。 通常有以下三種算法:
gray = (R + G + B) / 3,即求得R、G、B三個分量平均值作為索引圖像中對應像素點的像素值。
gray = min(R, G, B),即以R、G、B三個中最小分量作為索引圖像對應像素點的像素值。
gray = 0.3 * R + 0.59 * G + 0.11 * B(或者表示為:gray = ((77 * R + 151 * G + 28 * B) >> 8))
調用格式:
[X,map] = rgb2ind(RGB, n)
使用第二種算法把真彩色圖像轉換為索引圖像,其中n指定map中顏色項數, n最大不能超過65536。
返回值中map即索引圖像的調色板。
X = rgb2ind(RGB, map)
使用調色板map將真彩色圖像轉換為索引圖像,即在調色板中找到與真彩色圖像顏色值最接近的顏色作為轉換後的索引圖像的像素值。map中顏色項數(即size(map, 1))不能超過65536。
[X,map] = rgb2ind(RGB, tol)
利用第一種算法把真彩色圖像轉換為索引圖像, map中最多包含(floor(1/tol)+1)^3種顏色, tol必須是介於0.0和1.0之間的數。
[...] = rgb2ind(..., dither_option)
其中dither_option用於開啟/關閉dither, dither_option可以是'dither'(默認值)或'nodither'。
相關函式: ind2gray, mat2gray, ntsc2rgb, rgb2ind, rgb2ntsc
程式示例
% 1. 顯示RGB真彩色
imgrgb = imread('flower.jpg');
figure('Name', '顯示真彩色圖像')
imshow(imgrgb)
% 2. 顯示灰度圖像
imggray = rgb2gray(imgrgb);
figure('Name', '顯示灰度圖像')
imshow(imggray)
% 3. 顯示索引圖像
[imgind, map] = rgb2ind(imgrgb, 10);
figure('Name', '顯示索引圖像')
imshow(imgind, map)