汽车标志识别设计 - MATLAB程序设计

2019-03-16 20:10

设计目的:车牌定位系统的目的在于正确获取整个图像中车标的区域,并识别出车标。 程序效果:

程序实现:

STEP1:输入待处理的原始图像: 程序:

1 2 3 4

clear;clc;close all;

%Step1 获取图像 装入待处理彩色图像并显示原始图像 Scolor = imread('1.jpg');%imread函数读取图像文件 subplot(3,4,1);imshow(Scolor),title('原始图像')

输出:

原始图像

SETP2:图像的灰度化:

彩色图像包含着大量的颜色信息,不但在存储上开销很大,而且在处理上也会降低系统的执行速度,因此在对图像进行识别等处理中经常将彩色图像转变为灰度图像,以加快处理速度。由彩色转换为灰度的过程叫做灰度化处理。选择的标准是经过灰度变换后,像素的动态范围增加,图像的对比度扩展,使图像变得更加清晰、细腻、容易识别。 程序:

1 %将彩色图像转换为黑白并显示

2 Sgray = rgb2gray(Scolor);%rgb2gray转换成灰度图

3 subplot(3,4,2);imshow(Sgray),title('原始黑白图像');

输出:

原始黑白图像

STEP3:对原始图像进行开操作得到图像背景图像: 程序:

1 2 3 4

%对原始图像进行开操作得到图像背景图像: s=strel('disk',13);%strei函数

Bgray=imopen(Sgray,s);%打开sgray s图像

subplot(3,4,3);imshow(Bgray);title('背景图像');%输出背景图像

输出:

背景图像

STEP4: 灰度图像与背景图像作减法,对图像进行增强处理: 程序:

1 %灰度图像与背景图像作减法,对图像进行增强处理: 2 Egray=imsubtract(Sgray,Bgray);%两幅图相减

3 subplot(3,4,4);imshow(Egray);title('增强黑白图像');%输出黑白图像

输出:

增强黑白图像

STEP5: 取得最佳阈值,将图像二值化:

二值图像是指整幅图像画面内仅黑、白二值的图像。在实际的车牌处理系统中,进行图像二值变换的关键是要确定合适的阀值,使得字符与背景能够分割开来,二值变换的结果图像必须要具备良好的保形性,不丢掉有用的形状信息,不会产生额外的空缺等等。车牌识别系统要求处理的速度高、成本低、信息量大,采用二值图像进行处理,能大大地提高处理效率。阈值处理的操作过程是先由用户指定或通过算法生成一个阈值,如果图像中某中像素的灰度值小于该阈值,则将该像素的灰度值设置为0或255,否则灰度值设置为255或0。 程序:

1 2 3 4 5 6 7

%二值化处理

fmax1=double(max(max(Egray)));%egray的最大值并输出双精度型 fmin1=double(min(min(Egray)));%egray的最小值并输出双精度型 level=(fmax1-(fmax1-fmin1)/3)/255;%获得最佳阈值 bw22=im2bw(Egray,level);%转换图像为二进制图像 bw2=double(bw22);

figure,imshow(bw2);title('图像二值化');%得到二值图像

输出:

图像二值化

STEP6:边缘检测:

两个具有不同灰度值的相邻区域之间总存在边缘,边缘就是灰度值不连续的结果,是图像分割、纹理特征提取和形状特征提取等图像分析的基础。为了对有意义的边缘点进行分类,与这个点相联系的灰度级必须比在这一点的背景上变换更有效,我们通过门限方法来决定一个值是否有效。所以,如果一个点的二维一阶导数比指定的门限大,我们就定义图像中的次点是一个边缘点,一组这样的依据事先定好的连接准则相连的边缘点就定义为一条边缘。经过一阶的导数的边缘检测,所求的一阶导数高于某个阈值,则确定该点为边缘点,这样会导致检测的边缘点太多。可以通过求梯度局部最大值对应的点,并认定为边缘点,去除非局部最大值,可以检测出精确的边缘。一阶导数的局部最大值对应二阶导数的零交叉点,这样通过


汽车标志识别设计 - MATLAB程序设计.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:射频微波(知识点)

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: