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

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

[复制链接]

该用户从未签到

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

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
  • 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 12:06 , Processed in 0.156250 second(s), 25 queries , Gzip On.

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

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

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