|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
本帖最后由 helendcany 于 2020-10-10 10:43 编辑
3 C- {+ ?! ?' m. ~9 D* @
% k" R7 b* I. h1 ?' P; B% K识别蓝色车牌的MATLAB简单程序
8 y# g1 \8 T2 q* x7 q3 q3 ?) q$ t/ P/ E6 d' a# v
clear all;close all;clc;[filename,filepath]=uigetfile('.jpg','输入一个需要识别的车牌图像');% 直接自动读入%file=strcat(filepath,filename); %strcat函数:连接字符串;把filepath的字符串与filename的连接,即路径/文件名8 g' Z/ v* ?1 T2 U" ^7 l0 Y
I=imread(file);
: A' a* n2 ~% U/ s! P5 Yfigure('name','原图'),imshow(I);title('原图');
. }1 d* F# T0 m6 O[x,y,z]=size(I);
5 m6 d. V$ x5 v+ _% 以下为找车牌Y方向蓝色的范围
4 B3 g: u4 l5 N5 t" y1 G$ Q3 hBlue_y=zeros(y,1);% zeros(M,N) 表示的是M行*N列的全0矩阵
6 ~6 B4 j2 Y4 \7 J9 Dfor i=1:x 8 ], p2 u( ]3 |
for j=1:y
6 Y$ [6 q+ s5 [if(I(i,j,3)>(I(i,j,1)+I(i,j,2))&&(I(i,j,3)>128))%% 判断蓝色像素 - y! v* Y- }" P3 q- W" q9 s
Blue_y(j,1)= Blue_y(j,1)+1;% 蓝色像素点统计 & M1 X+ U% \) u9 B* i6 Z+ k
end
) T; d! i, |, h, R% ?end
6 @ a2 I3 U2 `! }% Jend0 }4 s- U9 @- n6 }% n) y
PY1=1;
! @) _ S5 Z, I! Z9 k& L- V& Twhile ((Blue_y(PY1,1)<10)&&(PY1<y))%Y方向是车牌的宽,大于5个蓝色像素点判为有车牌的区域 * m2 `! d6 C0 [( G q2 `/ {* P; q
PY1=PY1+1;end %PY1是Y坐标方向蓝色范围的下限9 t" {( V" L8 ~ J$ i) J
PY2=y;5 o7 N7 M* q* _
while ((Blue_y(PY2,1)<5)&&(PY2>PY1)) 0 `3 i/ ~9 [$ A& E
PY2=PY2-1;
: n% {2 z y6 X# Hend %PY2是Y坐标方向蓝色范围的上限; ?6 I$ |1 w4 r! {: d# t
% 以下为找车牌X方向蓝色的范围0 ^3 }$ I5 G6 E/ v4 j0 v3 Y: d1 }
Blue_x=zeros(1,x);" A5 L$ i) j7 E5 [ q
for i=1:x
3 }% M7 T- k! w3 j1 I7 o tfor j=1:y % 只需扫描的行
# b4 {" J) a$ `3 }if(I(i,j,3)>(I(i,j,1)+I(i,j,2))&&(I(i,j,3)>128)) %% 判断蓝色像素 ) Y1 e2 @% }2 N% p( n3 V
Blue_x(1,i)= Blue_x(1,i)+1; % 蓝色像素点统计 6 h- y, L5 `: S+ S
end
# u z" q% {6 B* _ F- K) O' ^end
! A' i) Z* T4 u' R- X% Gend- H0 p3 r! w3 ~
PX1=1;
/ O& z0 v$ e2 K4 G+ {while ((Blue_x(1,PX1)<5)&&(PX1<x)) %X方向是车牌的高,大于5个蓝色像素点判为车牌的范围
6 B' E1 }; \" W/ x$ u PX1=PX1+1;$ X8 ]. C' r# A$ `
end %PX1是X坐标方向蓝色范围的下限
( L5 t4 A" r- p3 e' [" mPX2=x;; f: u7 E& t! `
while ((Blue_x(1,PX2)<3)&&(PX2>PX1)) ]- s6 b1 r7 w, s6 j
PX2=PX2-1;( `, s8 x/ ~7 S1 ^- k3 v
end %PX2是X坐标方向蓝色范围的上限! q- A' Q0 o% {
dw=I(PX1: PX2,PY1: PY2,: );% 裁剪图像
9 `$ E( Z7 l7 f" k% X" _7 xfigure('name','定位剪切后的彩色车牌图像');. M8 U' N: ?9 l C% N4 ^
imshow(dw),title('定位剪切后的彩色车牌图像')$ m ^. w9 }& T) r; q& Y) Y
|
|