lk19861111 发表于 2009-4-20 19:21

各位朋友帮我看看 这程序怎么了

I=imread('Car.jpg');
=size(I);
myI=double(I);
%%%%%%%%%%% RGB to HSI%%%%%%%%
tic   % 测定算法执行的时间,开始计时
%%%%%%%%%%% 统计分析 %%%%%%%%%%%%%%%
%%%%%%%% Y 方向 %%%%%%%%%%
Blue_y=zeros(y,1);
for i=1:y
    for j=1:x
            if((myI(i,j,1)<=121)&&myI(i,j,1)>=110&&((myI(i,j,2)<=155)&&(myI(i,j,2)>=141))&&((myI(i,j,3)<=240)&&(myI(i,j,3)>=210)))
% 蓝色RGB的灰度范围
               Blue_y(i,1)= Blue_y(i,1)+1;   % 蓝色象素点统计         
         end
    end      
end
=max(Blue_y);      % Y方向车牌区域确定
PY1=MaxY;
while ((Blue_y(PY1,1)>=5)&&(PY1>1))
       PY1=PY1-1;
end   
PY2=MaxY;
while ((Blue_y(PY2,1)>=5)&&(PY2<y))
       PY2=PY2+1;
end
IY=I(PY1:PY2,:,:);
%%%%%%%% X 方向 %%%%%%%%%%
Blue_x=zeros(1,x);             % 进一步确定X方向的车牌区域
for j=1:x
    for i=PY1:PY2
            if((myI(i,j,1)<=121)&&myI(i,j,1)>=110&&((myI(i,j,2)<=155)&&(myI(i,j,2)>=141))&&((myI(i,j,3)<=240)&&(myI(i,j,3)>=210)))
               Blue_x(1,j)= Blue_x(1,j)+1;               
         end
    end      
end
PX1=1;
while ((Blue_x(1,PX1)<3)&&(PX1<x))
       PX1=PX1+1;
end   
PX2=x;
while ((Blue_x(1,PX2)<3)&&(PX2>PX1))
       PX2=PX2-1;
end
PX1=PX1-2; % 对车牌区域的修正
PX2=PX2+2;
Plate=I(PY1:PY2,PX1-2:PX2,:);
t=toc % 读取计时
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
figure,imshow(I);
figure,plot(Blue_y);grid
figure,plot(Blue_x);grid
figure,imshow(IY);
figure,imshow(Plate);
??? Index exceeds matrix dimensions.为什么最后出现那句话啊 ,错在哪了 朋友们帮看看 错在哪 怎么改,图片是下面的谢谢了 我是个新手 。。。。。。。。5555555555555555532978407

penghust 发表于 2009-4-20 19:59

检查一下你的循环
看看是不是循环次数大于矩阵的维数(长度)?
页: [1]
查看完整版本: 各位朋友帮我看看 这程序怎么了