EDA365电子论坛网
标题:
识别蓝色车牌的MATLAB简单程序
[打印本页]
作者:
helendcany
时间:
2020-10-10 10:39
标题:
识别蓝色车牌的MATLAB简单程序
本帖最后由 helendcany 于 2020-10-10 10:43 编辑
8 k5 e/ H& f- {. R& W+ N/ R8 y6 A
/ \+ `; P% q) @7 O
识别蓝色车牌的MATLAB简单程序
' f: j5 }6 `5 [" e1 [/ A- \; S& G
! B7 y9 j% H* i& @
clear all;close all;clc;[filename,filepath]=uigetfile('.jpg','输入一个需要识别的车牌图像');% 直接自动读入%file=strcat(filepath,filename); %strcat函数:连接字符串;把filepath的字符串与filename的连接,即路径/文件名
5 z2 G# |" n9 V! B8 a8 u
I=imread(file);
: m8 W1 T0 ]9 [
figure('name','原图'),imshow(I);title('原图');
9 I0 }' D$ [8 N
[x,y,z]=size(I);
A+ z: H u2 y5 u
% 以下为找车牌Y方向蓝色的范围
" a. Y2 r+ @! r. u* K
Blue_y=zeros(y,1);% zeros(M,N) 表示的是M行*N列的全0矩阵
/ N; w1 |7 g8 \! }4 G
for i=1:x
8 g4 w& @) N& P0 Z
for j=1:y
" P: \5 R/ O$ A) h( _
if(I(i,j,3)>(I(i,j,1)+I(i,j,2))&&(I(i,j,3)>128))%% 判断蓝色像素
% L8 h4 ?) {: k
Blue_y(j,1)= Blue_y(j,1)+1;% 蓝色像素点统计
2 X" A# L q$ ~5 [4 D
end
' N9 e3 P1 z( G# j1 a4 U+ a
end
! q9 Y @% P% a. }
end
# _! y" F; N3 C4 b7 G
PY1=1;
K3 G* k# q7 m* d
while ((Blue_y(PY1,1)<10)&&(PY1<y))%Y方向是车牌的宽,大于5个蓝色像素点判为有车牌的区域
5 V9 T, s# l Y# u: g
PY1=PY1+1;end %PY1是Y坐标方向蓝色范围的下限
$ F5 w9 d& r( O# b8 N
PY2=y;
8 u- p! p. h. A2 e, j; s
while ((Blue_y(PY2,1)<5)&&(PY2>PY1))
9 X( d. {5 r- x% I" ]5 v
PY2=PY2-1;
% `8 C# S% y3 E7 W0 W5 i
end %PY2是Y坐标方向蓝色范围的上限
( r3 B, {' ]( T! Z3 H) ~, S
% 以下为找车牌X方向蓝色的范围
' l* F% m+ P O( @
Blue_x=zeros(1,x);
4 G4 j6 ` I- h; L: O
for i=1:x
* ^5 `) x1 w9 Z
for j=1:y % 只需扫描的行
) p* e* z0 j& z* A, o, w
if(I(i,j,3)>(I(i,j,1)+I(i,j,2))&&(I(i,j,3)>128)) %% 判断蓝色像素
/ q- I0 u( b" z5 ]2 J3 a
Blue_x(1,i)= Blue_x(1,i)+1; % 蓝色像素点统计
6 K t. t- I: M! h u! s0 n
end
4 W/ c1 Y0 R4 d( j3 q
end
+ h" h: n) ^3 g8 J3 A/ E
end
+ t! B$ D' _8 P8 o
PX1=1;
' u# ]5 o& C) g) w, [1 [5 x
while ((Blue_x(1,PX1)<5)&&(PX1<x)) %X方向是车牌的高,大于5个蓝色像素点判为车牌的范围
4 W- n1 i, S- l# L) S
PX1=PX1+1;
% S ~ M! N. }! Q+ K8 f- |
end %PX1是X坐标方向蓝色范围的下限
. ~2 \% x# |0 v! g7 W7 w1 s
PX2=x;
: \4 R; S6 o7 `. v6 U
while ((Blue_x(1,PX2)<3)&&(PX2>PX1))
5 j% ?& `: {. E0 N' J
PX2=PX2-1;
A* \2 \$ {, X4 ]% D- u
end %PX2是X坐标方向蓝色范围的上限
9 ~( v V3 }, j% R
dw=I(PX1: PX2,PY1: PY2,: );% 裁剪图像
7 ?! _3 L) w# d! k/ u& U; d i( Q
figure('name','定位剪切后的彩色车牌图像');
+ @8 Q& |# Z0 z% p
imshow(dw),title('定位剪切后的彩色车牌图像')
' \3 P. s1 {/ d
作者:
caoshan_c
时间:
2020-10-10 11:09
感谢楼主分享
欢迎光临 EDA365电子论坛网 (https://bbs.eda365.com/)
Powered by Discuz! X3.2