您的位置:首页 > 编程语言 > MATLAB

RGB转为HSI的MATLAB程序 rgb2hsi

2014-09-22 14:53 495 查看
这个程序更清楚一些:

function hsi = rgb2hsi(rgb)

rgb=im2double(rgb);

r=rgb(:,:,1);

g=rgb(:,:,2);

b=rgb(:,:,3);

%Implement the conversion equations 

num = 0.5*((r-g)+(r-b));

den = sqrt((r-g).^2+(r-b).*(g-b));

theta=acos(num./(den+eps));

H=theta;

H(b>g)=2*pi-H(b>g);

H=H/(2*pi);

num=min(min(r,g),b);

den = r+g+b;

den(den==0)=eps;

S=1-3.*num./den;

H(S==0)=0;

I=(r+g+b)/3;

%combin all three results into an hsi image

hsi = cat(3,H,S,I);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  hsi rgb matlab