转自:http://blog.sina.com.cn/s/blog_6c41e2f30100xuy1.html
转换原理:采用圆锥模型公式
function HSI = RGB2HSI( RGB , Hexc , Sexc , Iexc )
% RGB 表示输入RGB图像矩阵
% Hexc 、Sexc、Iexc 分别表示 HSI 中 H S I 的偏移(度)
RGB = im2double(RGB); % 数据类型转换 整形->浮点
R = RGB(:,:,1); % 红
G = RGB(:,:,2); % 绿
B = RGB(:,:,3); % 蓝
% 根据公式计算 H S I
I = (R + G + B) / sqrt(3);
S = sqrt( (R - G).^2 + (G - B).^2 + (B - R).^2 );
H = ( R .* 2 - (G + B) )./sqrt( sqrt(2) * ( (R - G).^2 + (G - B).^2 + (B - R).^2 ) );
H( G<B ) = 2 * pi - H( G<B );
% 根据输入进行调整
H = H + Hexc;
S = S + Sexc;
I = I + Iexc;
% 重组图像矩阵
HSI = cat(3,H,S,I);