matlab圖象處理和分析,作業源程序
大?。?/span>344 人氣: 2010-02-08 需要積分:0
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
G(t)=I(t).*(1+S(t).*cos(H(t)-2*pi/3)./cos(pi-H(t)));
B(t)=3*I(t)-(R(t)+G(t));
t=find(4*pi/3
B(t)=I(t).*(1+S(t).*cos(H(t)-4*pi/3)./cos(5*pi/3-H(t)));
R(t)=3*I(t)-(G(t)+B(t));%轉換成RGB
A(:,:,1)=R;
A(:,:,2)=G;
A(:,:,3)=B;
A=A*256;
A=im2uint8(A);%將A轉換成uint8型
subplot(1,2,2);
subimage(A);
非常好我支持^.^
(6) 100%
不好我反對
(0) 0%