%dingqian
%2012-04-02
clc;
close all;
%Plate;
mycaps;
I=Plate;
%I=imread('图e1.jpg');
% myI = double(I);
% [x,y,z]=size(I);
% for i = 1:x
% for j = 1:y
% H(i,j,1) = (myI(i,j,1)+myI(i,j,2)+myI(i,j,3))/3;
% H(i,j,2) = H(i,j,1);
% H(i,j,3) = H(i,j,1);
% end
% end
% % H = (myI(:,:,1)+myI(:,:,2)+myI(:,:,3))/3;
% % myI(:,:,1) = H;
% % myI(:,:,2) = H;
% % myI(:,:,3) = H;
H = rgb2gray(I);
J = imadjust(H,[0.1 0.9],[]);
%J(1,1) = 0;
%J(end,end) = 0;
figure(1);
imshow(I);
figure(2);
imshow(H);
figure(3);
imshow(J);
figure(4);
subplot(1,2,1);
imhist(H);
title('拉伸前灰度')
xlabel('灰度值')
ylabel('像素点个数')
subplot(1,2,2)
imhist(J);
title('拉伸后灰度')
xlabel('灰度值')
ylabel('像素点个数')
%gtext('灰度拉伸')
K = im2bw(J);
figure(5)
imshow(K)
title('\fontsize{20}二值化');
%M1 = edge(H,'soble');
M1 = edge(J,'prewitt');
M2 = edge(J,'sobel');
M3 = edge(J,'log');
M4 = edge(J,'canny');
figure(6);
subplot(2,2,1)
imshow(M1);
title('prewitt算子')
subplot(2,2,2)
imshow(M2);
title('sobel算子')
subplot(2,2,3)
imshow(M3);
title('Laplace算子')
subplot(2,2,4)
imshow(M4);
title('canny算子')
figure(7);
imhist(H);
% xlabel('\fontsize{20}灰度值');
% ylabel('\fontsize{20}像素点个数');
set(gca,'fontsize',13);
figure(8);
imhist(J);
%title('拉伸后灰度')
% xlabel('\fontsize{20}灰度值');
% ylabel('\fontsize{20}像素点个数');
set(gca,'fontsize',13);
%gtext('灰度拉伸')
% [y,x,z]=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)<=30)&&((myI(i,j,2)<=70)&&(myI(i,j,2)>=49))&&((myI(i,j,3)<=142)&&(myI(i,j,3)>=100)))
% % 蓝色RGB的灰度范围
% Blue_y(i,1)= Blue_y(i,1)+1; % 蓝色象素点统计
% end
% end
% end
% [temp MaxY]=max(Blue_y); % Y方向车牌区域确定
% PY1=MaxY;
% while ((Blue_y(PY1,1)>0)&&(PY1>1))
% PY1=PY1-1;
% end
% PY2=MaxY;
% while ((Blue_y(PY2,1)>0)&&(PY2<y))
% PY2=PY2+1;
% end
% IY=I(PY1:PY2,:,:);
% if PY2<y-2
% PY1=PY1-2; % 对车牌区域的修正
% PY2=PY2+2;
% end
%
% %%%%%%%% X 方向 %%%%%%%%%%
% Blue_x=zeros(1,x); % 进一步确定X方向的车牌区域
% for j=1:x
% for i=PY1:PY2
% if((myI(i,j,1)<=30)&&((myI(i,j,2)<=70)&&(myI(i,j,2)>=49))&&((myI(i,j,3)<=142)&&(myI(i,j,3)>=100)))
% Blue_x(1,j)= Blue_x(1,j)+1;
% end
% end
% end
%
% PX1=1;
% while ((Blue_x(1,PX1)<1))&&(PX1<x)
% PX1=PX1+1;
% end
% PX2=x;
% while ((Blue_x(1,PX2)<1))&&(PX2>PX1)
% PX2=PX2-1;
% end
% if PX2<x-2
% PX1=PX1-2; % 对车牌区域的修正
% PX2=PX2+2;
% end
%
% 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);