www.pudn.com > color_model_change_matlab.rar > z2.m


clear; 
A=imread('Water lilies','JPEG'); 
subplot(1,2,1); 
subimage(A); 
title('变化前的图'); 
A=im2double(A);%将A转换成double型 
A=A/256; 
R=A(:,:,1); 
G=A(:,:,2); 
B=A(:,:,3); 
I=(R+G+B)/3; 
S=1-min(R,min(G,B))./I; 
H=zeros(size(S));%为H分配空间 
t=find(S==0.0);%当S为时,H=0.0 
H(t)=0.0; 
t=find(S~=0.0); 
H(t)=((R(t)-G(t))+(R(t)-B(t)))/2.0; 
H(t)=H(t)./sqrt((R(t)-G(t)).^2+(R(t)-B(t)).*(G(t)-B(t))); 
H(t)=acos(H(t)); 
t=find(B>G); 
H(t)=2*pi-H(t);%转换成HSI  
H=H+40/180*pi;%色调加40度 
t=find(H>2*pi); 
H(t)=H(t)-2*pi; 
find(0<=H&H<=2*pi/3); 
B(t)=I(t).*(1-S(t)); 
R(t)=I(t).*(1+S(t).*cos(H(t))./cos(pi/3-H(t))); 
G(t)=3*I(t)-(B(t)+R(t)); 
t=find(2*pi/3