I=imread('004.jpg');
figure,subplot(121),imshow(I);
[y,x,z]=size(I);
myI=double(I);
%%%%%%%%%%% RGB to HSV %%%%%%%%
tic % 测定算法执行的时间,开始计时
myH=zeros(y,x,z);
for i=1:y
for j=1:x
R=myI(i,j,1);
G=myI(i,j,2);
B=myI(i,j,3);
X=[R,G,B];
Max=max(X);
Min=min(X);
if(R==Max)
H=(G-B)/(Max-Min);
end
if(G==Max)
H=2+(B-R)/(Max-Min);
end
if(B==Max)
H=4+(R-G)/(Max-Min);
end
H=H*60;
if(H<0)
H=H+360;
end
V=max(X);
S=(Max-Min)*255/Max;
myH(i,j,1)=H;
myH(i,j,2)=V;
myH(i,j,3)=S;
end
end
%%%%%%%%%% RGB to HSV 结束%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%% 图像识别,红色%%%%%%%%%%%%%%%%%%%%%%%%
for i=1:y
for j=1:x
if((((myH(i,j,1)<=30)&&(myH(i,j,1)>=0))||((myH(i,j,1)<=360)&&(myH(i,j,1)>=330)))&&((myI(i,j,2)>=50))&&((myH(i,j,3)>=50)))
myH(i,j,1)=255;myH(i,j,2)=255;myH(i,j,3)=255;
else
myH(i,j,1)=0;myH(i,j,2)=0;myH(i,j,3)=0;
end
end
end
%%%%%%%%%% 图像识别,红色 结束%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
myH=rgb2gray(myH);
mygray=myH;
t=toc % 读取计时
subplot(122),imshow(myH);
评论0