|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
本帖最后由 helendcany 于 2020-10-10 10:43 编辑 & s- T+ v' k8 J3 d" Q; E9 L4 K
2 e# [6 m" F) P- X, t0 i% G% P
识别蓝色车牌的MATLAB简单程序
# S) Y0 \5 w. E6 F$ n- Q
g$ j! L( x" G- a7 l- c& wclear all;close all;clc;[filename,filepath]=uigetfile('.jpg','输入一个需要识别的车牌图像');% 直接自动读入%file=strcat(filepath,filename); %strcat函数:连接字符串;把filepath的字符串与filename的连接,即路径/文件名9 `- c6 }1 U. K7 p0 a
I=imread(file);
% b8 y0 O2 z4 l4 y& R1 }figure('name','原图'),imshow(I);title('原图');9 P, g4 t) ~ D9 q1 Y$ M
[x,y,z]=size(I);8 A* j6 m D$ a1 v1 o; ]
% 以下为找车牌Y方向蓝色的范围
9 V7 {+ [. L; WBlue_y=zeros(y,1);% zeros(M,N) 表示的是M行*N列的全0矩阵
" E a1 k- _! L# z1 x8 f4 v3 k5 efor i=1:x 0 Q, b! O- K, C5 S/ y+ m
for j=1:y / T) |! m! v# }- U
if(I(i,j,3)>(I(i,j,1)+I(i,j,2))&&(I(i,j,3)>128))%% 判断蓝色像素 ) O1 L" o) q+ n$ w% @( ]
Blue_y(j,1)= Blue_y(j,1)+1;% 蓝色像素点统计 . B6 J1 W5 q1 W) g6 }
end ; Q0 ~+ t: @7 f; m/ I- m
end
. {6 u* a# Q, v& K0 K: @9 q* U3 \end
2 b3 g1 u u1 P9 p/ \: o; qPY1=1;
5 S3 H2 z2 ?& @. Wwhile ((Blue_y(PY1,1)<10)&&(PY1<y))%Y方向是车牌的宽,大于5个蓝色像素点判为有车牌的区域 , D; D! ]2 V9 U1 e2 O) P0 W
PY1=PY1+1;end %PY1是Y坐标方向蓝色范围的下限
9 E2 z" T2 p) C r4 o. s+ XPY2=y; f F7 ^# ~ q$ ?/ p' {
while ((Blue_y(PY2,1)<5)&&(PY2>PY1))
) N! Z2 T* F% ^( aPY2=PY2-1;
( t8 V6 q' b/ Wend %PY2是Y坐标方向蓝色范围的上限3 F* e3 d- ^9 ~+ V
% 以下为找车牌X方向蓝色的范围- ~* {# u# Z& q6 f& q
Blue_x=zeros(1,x);( @4 D6 f% T8 |3 w5 C( t& I
for i=1:x
* q9 d8 {0 L" g/ T, \for j=1:y % 只需扫描的行
7 }) a, L e% i, q2 xif(I(i,j,3)>(I(i,j,1)+I(i,j,2))&&(I(i,j,3)>128)) %% 判断蓝色像素 # Z% k A' D" i+ M9 s
Blue_x(1,i)= Blue_x(1,i)+1; % 蓝色像素点统计
- }0 f( b3 K; ^' o7 c# ?2 Uend " u7 y- h6 |* r# I/ ~0 I, s
end
6 B& D( z% v! B3 W3 ]5 uend
1 p+ U9 P2 }! u9 r* }; Y2 M; ~PX1=1;) X5 D' {' `5 z4 b
while ((Blue_x(1,PX1)<5)&&(PX1<x)) %X方向是车牌的高,大于5个蓝色像素点判为车牌的范围) G/ m' I7 [, J9 I1 A+ H
PX1=PX1+1;& B& \ @0 _1 j V3 ^7 Z% v
end %PX1是X坐标方向蓝色范围的下限. g- u1 x8 I& I$ j: b: a
PX2=x;3 ^: \) X" w% r$ n0 B+ |! J9 C
while ((Blue_x(1,PX2)<3)&&(PX2>PX1))1 c4 S3 U6 m7 ^6 d g
PX2=PX2-1;
0 c; A+ q2 b f* w; hend %PX2是X坐标方向蓝色范围的上限
/ y8 V* a4 ~' K# Vdw=I(PX1: PX2,PY1: PY2,: );% 裁剪图像
. c5 x7 |3 b2 J( B6 r. Kfigure('name','定位剪切后的彩色车牌图像');
" B2 s& E" o Y6 G3 qimshow(dw),title('定位剪切后的彩色车牌图像')7 z Q3 W- v2 G
|
|