|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
本帖最后由 helendcany 于 2020-10-10 10:43 编辑
* ]3 C e- a' \" z- I6 i
L+ m) j& N* l6 ]0 I9 e8 g5 d& w4 ]识别蓝色车牌的MATLAB简单程序 ! u1 h1 q6 n- w
' Q& _! v2 M% ^clear all;close all;clc;[filename,filepath]=uigetfile('.jpg','输入一个需要识别的车牌图像');% 直接自动读入%file=strcat(filepath,filename); %strcat函数:连接字符串;把filepath的字符串与filename的连接,即路径/文件名) x, |# `' v4 K$ W! D- z
I=imread(file);! L: q. c' ^6 A0 S& l% t
figure('name','原图'),imshow(I);title('原图');& n+ L- G _5 O5 o* r
[x,y,z]=size(I);
7 @0 V9 d' A: p7 K% 以下为找车牌Y方向蓝色的范围
4 G7 T4 L3 g+ | vBlue_y=zeros(y,1);% zeros(M,N) 表示的是M行*N列的全0矩阵1 R$ J4 M0 u! Q/ n! u2 A
for i=1:x
5 }& D, R0 g3 v" \" D' jfor j=1:y 2 M% R% J5 q7 b5 ?! M5 j" Y; b
if(I(i,j,3)>(I(i,j,1)+I(i,j,2))&&(I(i,j,3)>128))%% 判断蓝色像素 , ?7 w9 A8 q! @8 D$ x7 d. ^' ^/ m
Blue_y(j,1)= Blue_y(j,1)+1;% 蓝色像素点统计 ' m9 o7 M# d: Y2 w ?* T
end / N! x0 Y1 l' b% g; X( z
end
5 `* [: W/ N0 x( O; |- u# tend
% h! p- g+ `6 O8 O/ _& x# O6 H/ CPY1=1;2 l% z i! H/ v3 A' g
while ((Blue_y(PY1,1)<10)&&(PY1<y))%Y方向是车牌的宽,大于5个蓝色像素点判为有车牌的区域
, [ U3 U: @0 U! ^# E! V IPY1=PY1+1;end %PY1是Y坐标方向蓝色范围的下限
$ ]* n+ r1 Y7 @3 M! _! |PY2=y;( E- E$ K' N- c
while ((Blue_y(PY2,1)<5)&&(PY2>PY1)) ' Z% k: \: C. g: W/ Y' N% {: N
PY2=PY2-1;
, ]3 y! F7 p: S8 [7 \9 e0 aend %PY2是Y坐标方向蓝色范围的上限$ L7 N, O# U( g' G) u
% 以下为找车牌X方向蓝色的范围
$ v, W; y+ O0 ^Blue_x=zeros(1,x);" e3 a" [' N2 I* l5 u, ^$ L
for i=1:x 9 m5 \% {6 }7 o/ z2 ?
for j=1:y % 只需扫描的行 1 u. A1 C; k6 a9 \
if(I(i,j,3)>(I(i,j,1)+I(i,j,2))&&(I(i,j,3)>128)) %% 判断蓝色像素 1 Y1 u. S9 r: S; y4 f7 J
Blue_x(1,i)= Blue_x(1,i)+1; % 蓝色像素点统计 ) c$ J! o; y1 x; Q% z
end , }3 m- t8 I* g
end
/ u' G$ z( O" R1 @6 W7 N! Dend
' w8 `. G8 I; O5 |) I# \" ~ BPX1=1;8 c$ i- Q/ J9 P! y# h" W" c
while ((Blue_x(1,PX1)<5)&&(PX1<x)) %X方向是车牌的高,大于5个蓝色像素点判为车牌的范围: O9 e3 o/ M. l' r/ R `
PX1=PX1+1;
h5 |* i( T! uend %PX1是X坐标方向蓝色范围的下限
: e2 ? g( ^) R$ K, t: @PX2=x;% W9 y! u0 Z! U. q" g
while ((Blue_x(1,PX2)<3)&&(PX2>PX1))
& V. _+ B/ ?- w" v( H( b3 Q PX2=PX2-1;
. `9 L1 u' p+ ^end %PX2是X坐标方向蓝色范围的上限
- ?/ i# F3 d8 ~8 E7 h4 Y9 Adw=I(PX1: PX2,PY1: PY2,: );% 裁剪图像
6 G, |0 E8 ~& L9 L$ i, kfigure('name','定位剪切后的彩色车牌图像');7 `) L# z3 z& A2 E: i
imshow(dw),title('定位剪切后的彩色车牌图像')# D2 L: Z4 D8 p8 {# |8 |
|
|