RGB转为HSI的MATLAB程序 rgb2hsi

来源:互联网 发布:delphi编译传奇源码 编辑:程序博客网 时间:2024/06/06 00:31


这个程序更清楚一些:


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);
0 0
原创粉丝点击