找回密码
 注册
关于网站域名变更的通知
查看: 424|回复: 1
打印 上一主题 下一主题

识别蓝色车牌的MATLAB简单程序

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2020-10-10 10:39 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
本帖最后由 helendcany 于 2020-10-10 10:43 编辑 - _- v8 I/ @' @1 j% ^6 {2 w, m
1 d2 c& ^" {4 l
识别蓝色车牌的MATLAB简单程序
" s: N; x5 E9 u; s$ x; j+ U7 u
: P' S8 `6 c  }* v& e, W/ c
clear all;close all;clc;[filename,filepath]=uigetfile('.jpg','输入一个需要识别的车牌图像');% 直接自动读入%file=strcat(filepath,filename); %strcat函数:连接字符串;把filepath的字符串与filename的连接,即路径/文件名, Y" T. z1 r4 P7 F4 @4 {3 [
I=imread(file);
& `( O6 \+ a- w7 B- ?figure('name','原图'),imshow(I);title('原图');
% u; t% O) g% `; w3 U2 F. T! V[x,y,z]=size(I);7 A! y4 U- |' V; ^4 j# t  D# t
% 以下为找车牌Y方向蓝色的范围
0 _( t, E% o- @Blue_y=zeros(y,1);% zeros(M,N) 表示的是M行*N列的全0矩阵
7 f6 k* y/ M* R; ~  i% u. F' cfor i=1:x   
2 Q! ]: U( Q+ l$ n3 t5 V4 ^) Cfor j=1:y         6 ^5 @# S  K7 A$ \7 L
if(I(i,j,3)>(I(i,j,1)+I(i,j,2))&&(I(i,j,3)>128))%% 判断蓝色像素           4 a, |$ W) f1 F% E; e
Blue_y(j,1)= Blue_y(j,1)+1;% 蓝色像素点统计         , N' Q& ~9 x, @% I
end      $ W- e3 E& s7 v- ^; D/ o% s+ x
end      
( q. ?( ?3 X1 q) n; e# K6 M( rend
2 l# w3 O+ s3 n* I2 u; UPY1=1;8 I" g+ G1 V7 i+ [( \8 u
while ((Blue_y(PY1,1)<10)&&(PY1<y))%Y方向是车牌的宽,大于5个蓝色像素点判为有车牌的区域        
0 C  w' a- O* ?0 QPY1=PY1+1;end    %PY1是Y坐标方向蓝色范围的下限
! ?' N: E6 n$ t6 D' DPY2=y;
: i# B2 U! `  p7 G- X; D! Kwhile ((Blue_y(PY2,1)<5)&&(PY2>PY1))        + P! B( Y% d: G  u. n2 P% C2 s
PY2=PY2-1;5 d- N: N2 ^( r2 w& E% Y1 k
end   %PY2是Y坐标方向蓝色范围的上限
# \! T0 g4 M7 g# I! d: H( ^- m3 `  V% 以下为找车牌X方向蓝色的范围4 d* m0 I8 ~$ K! M/ X( I2 U
Blue_x=zeros(1,x);
" H1 L/ s* \8 ^& z3 z- ?& T& kfor i=1:x     
: N. @8 \, W7 S4 w  pfor j=1:y  % 只需扫描的行         
% T: e& p% Z7 \8 ]" h% Xif(I(i,j,3)>(I(i,j,1)+I(i,j,2))&&(I(i,j,3)>128)) %% 判断蓝色像素            
" w, A+ \) t2 ]/ {% \0 YBlue_x(1,i)= Blue_x(1,i)+1; % 蓝色像素点统计                     1 Y' m  ]2 \3 I# K% l
end      - f% [' r8 S& Y9 w) ~
end   
3 i1 l+ F4 H$ i6 @6 Zend# e' l! O8 \1 |  N7 a$ j3 V; B( Q
PX1=1;
8 ?. S$ T& ?. D) R' _4 b  ^% jwhile ((Blue_x(1,PX1)<5)&&(PX1<x)) %X方向是车牌的高,大于5个蓝色像素点判为车牌的范围8 g& q: a4 E, ?8 x0 d5 B
       PX1=PX1+1;
+ @8 x2 k7 }- c8 g9 z$ Z1 e- fend    %PX1是X坐标方向蓝色范围的下限- p/ F1 d* O' U
PX2=x;1 \( ]+ Z$ B$ h/ Q0 ?5 _2 G" w
while ((Blue_x(1,PX2)<3)&&(PX2>PX1))
, _! g! F% h* A8 a       PX2=PX2-1;
) S+ M. ^1 s( U& F' ~& C/ v( Fend    %PX2是X坐标方向蓝色范围的上限
# S! D0 r8 u/ B) U9 Edw=I(PX1: PX2,PY1: PY2,: );% 裁剪图像9 I2 c7 q" _7 J* |) r6 J1 C
figure('name','定位剪切后的彩色车牌图像');
, _6 {. m0 T/ m8 ^5 j9 h5 Q% D; O$ ^imshow(dw),title('定位剪切后的彩色车牌图像')
9 d9 p/ V: M4 q; N2 b
  • TA的每日心情
    开心
    2021-3-16 15:27
  • 签到天数: 1 天

    [LV.1]初来乍到

    2#
    发表于 2020-10-10 11:09 | 只看该作者
    感谢楼主分享
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

    推荐内容上一条 /1 下一条

    EDA365公众号

    关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

    GMT+8, 2025-11-24 14:21 , Processed in 0.171875 second(s), 24 queries , Gzip On.

    深圳市墨知创新科技有限公司

    地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

    快速回复 返回顶部 返回列表