没有合适的资源?快使用搜索试试~ 我知道了~
基于图像处理的汽车牌照识别系统matlab代码实现
5星 · 超过95%的资源 需积分: 27 39 下载量 56 浏览量
2018-07-18
17:47:06
上传
评论 2
收藏 18KB DOCX 举报
温馨提示
试读
13页
基于图像处理的汽车牌照识别系统matlab代码实现基于图像处理的汽车牌照识别系统matlab代码实现
资源推荐
资源详情
资源评论
function [d]=main(jpg)
I=imread('car.jpg');
gure(1),imshow(I);title('原图');
I1=rgb2gray(I); %将真彩色图像转换为灰度图像
gure(2),subplot(1,2,1),imshow(I1);title('灰度图');
gure(2),subplot(1,2,2),imhist(I1);title('灰度图直方图');
I2=edge(I1,'robert',0.08,'both'); %高斯滤波器,方差为 0.08
gure(3),imshow(I2);title('robert 算子边缘检测')
se=[1;1;1];
I3=imerode(I2,se); %图像的腐蚀
gure(4),imshow(I3);title('腐蚀后图像');
se=strel('rectangle',[40,40]); %构造结构元素,以长方形构造一个 se
I4=imclose(I3,se); %对图像实现闭运算,闭运算也能平滑图像的轮廓,但与
开运算相反,它一般融合窄的缺口和细长的弯口,去掉小洞,填补轮廓上的缝
隙。
gure(5),imshow(I4);title('平滑图像的轮廓');
I5=bwareaopen(I4,2000); %从二进制图像中移除所有少于 p 像素的连接的
组件(对象),产生另一个二进制图像
gure(6),imshow(I5);title('从对象中移除小对象');
[y,x,z]=size(I5); %返回 I5 各维的尺寸,并存储在变量 y、x、z 中
myI=double(I5); %换成双精度数值
%begin 横向扫描
tic %计算 tic 与 toc 之间程序的运行时间
Blue_y=zeros(y,1); %产生 y*1 的全 0 矩阵
for i=1:y
for j=1:x
if(myI(i,j,1)==1)
%如果 myI(i,j,1)即 myI 图像中坐标为(i,j)的点为蓝色
%则 Blue_y 的相应行的元素 white_y(i,1)值加 1
Blue_y(i,1)= Blue_y(i,1)+1;%蓝色像素点统计
end
end
end
[temp MaxY]=max(Blue_y);%temp 为向量 white_y 的元素中的最大值,
MaxY 为该值的索引( 在向量中的位置)
PY1=MaxY;
while ((Blue_y(PY1,1)>=120)&&(PY1>1))
PY1=PY1-1;
end
PY2=MaxY;
while ((Blue_y(PY2,1)>=40)&&(PY2<y))
PY2=PY2+1;
end
IY=I(PY1:PY2,:,:);
%IY 为原始图像 I 中截取的纵坐标在 PY1:PY2 之间的部分
%end 横向扫描
%begin 纵向扫描
Blue_x=zeros(1,x);%进一步确定 x 方向的车牌区域
for j=1:x
for i=PY1:PY2
if(myI(i,j,1)==1)
Blue_x(1,j)= Blue_x(1,j)+1;
end
end
end
PX1=1;
while ((Blue_x(1,PX1)<3)&&(PX1<x))
PX1=PX1+1;
end
PX2=x;
while ((Blue_x(1,PX2)<3)&&(PX2>PX1))
PX2=PX2-1;
end
%end 纵向扫描
PX1=PX1-2;%对车牌区域的校正
剩余12页未读,继续阅读
资源评论
- annyor20062019-04-08谢谢分享!学习,学习
凉凉涂涂
- 粉丝: 9
- 资源: 154
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功