汽车标志识别设计-MATLAB程序设计
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
subplot(3,4,1);imshow(Scolor),title('原始图像')
输出:
SETP2:图像的灰度化:
彩色图像包含着大量的颜色信息,不但在存储上开销很大,而且在处理上也会降低系统的执行速度,因此在对图像进行识别等处理中经常将彩色图像转变为灰度图像,以加快处理速度。由彩色转换为灰度的过程叫做灰度化处理。选择的标准是经过灰度变换后,像素的动态范围增加,图像的对比度扩展,使图像变得更加清晰、细腻、容易识别。
bg4=imsubtract(bg3,bg2);%两幅图相减
subplot(3,4,10);imshow(bg4);title('增强车标图像');%输出增强车标图像
程序:
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;%获得最佳阈值
Egray=imsubtract(Sgray,Bgray);%两幅图相减
subplot(3,4,4);imshow(Egray);title('增强黑白图像');%输出黑白图像
输出:
STEP5:取得最佳阈值,将图像二值化:
二值图像是指整幅图像画面内仅黑、白二值的图像。在实际的车牌处理系统中,进行图像二值变换的关键是要确定合适的阀值,使得字符与背景能够分割开来,二值变换的结果图像必须要具备良好的保形性,不丢掉有用的形状信息,不会产生额外的空缺等等。车牌识别系统要求处理的速度高、成本低、信息量大,采用二值图像进行处理,能大大地提高处理效率。阈值处理的操作过程是先由用户指定或通过算法生成一个阈值,如果图像中某中像素的灰度值小于该阈值,则将该像素的灰度值设置为0或255,否则灰度值设置为255或0。
bw22=im2bw(Egray,level);%转换图像为二进制图像
bw2=double(bw22);
figure,imshow(bw2);title('图像二值化');%得到二值图像
输出:
STEP6:边缘检测:
两个具有不同灰度值的相邻区域之间总存在边缘,边缘就是灰度值不连续的结果,是图像分割、纹理特征提取和形状特征提取等图像分析的基础。为了对有意义的边缘点进行分类,与这个点相联系的灰度级必须比在这一点的背景上变换更有效,我们通过门限方法来决定一个值是否有效。所以,如果一个点的二维一阶导数比指定的门限大,我们就定义图像中的次点是一个边缘点,一组这样的依据事先定好的连接准则相连的边缘点就定义为一条边缘。经过一阶的导数的边缘检测,所求的一阶导数高于某个阈值,则确定该点为边缘点,这样会导致检测的边缘点太多。可以通过求梯度局部最大值对应的点,并认定为边缘点,去除非局部最大值,可以检测出精确的边缘。一阶导数的局部最大值对应二阶导数的零交叉点,这样通过找图像强度的二阶导数的零交叉点就能找到精确边缘点。
程序:
1
2
3
%将彩色图像转换为黑白并显示
Sgray = rgb2gray(Scolor);%rgb2gray转换成灰度图
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பைடு நூலகம்
3
%灰度图像与背景图像作减法,对图像进行增强处理:
subplot(3,4,8);imshow(bg3);title('图像开运算[5,19]');%输出开运算的图像
bg2=imopen(bg3,strel('rectangle',[11,24]));%取矩形框的开运算
subplot(3,4,9);imshow(bg2);title('图像开运算[11,24]');%输出开运算的图像
程序:
1
2
3
%边缘检测
grd=edge(bw2,'canny')%用canny算子识别强度图像中的边界
subplot(3,4,6);imshow(grd);title('图像边缘提取');%输出图像边缘
输出:
STEP7:对得到图像作开操作进行滤波:
数学形态非线性滤波,可以用于抑制噪声,进行特征提取、边缘检测、图像分割等图像处理问题。腐蚀是一种消除边界点的过程,结果是使目标缩小,孔洞增大,因而可有效的消除孤立噪声点;膨胀是将与目标物体接触的所有背景点合并到物体中的过程,结果是使目标增大,孔洞缩小,可填补目标物体中的空洞,形成连通域。先腐蚀后膨胀的过程称为开运算,它具有消除细小物体,并在纤细处分离物体和平滑较大物体边界的作用;先膨胀后腐蚀的过程称为闭运算,具有填充物体内细小空洞,连接邻近物体和平滑边界的作用。对图像做了开运算和闭运算,闭运算可以使图像的轮廓线更为光滑,它通常用来消掉狭窄的间断和长细的鸿沟,消除小的孔洞,并弥补轮廓线中的断裂。
设计目的:车牌定位系统的目的在于正确获取整个图像中车标的区域,并识别出车标。
程序效果:
程序实现:
STEP1:输入待处理的原始图像:
程序:
1
2
3
4
clear;clc;close all;
%Step1 获取图像 装入待处理彩色图像并显示原始图像
Scolor = imread('1.jpg');%imread函数读取图像文件
程序:
1
2
3
4
5
6
7
8
9
%对得到图像作开操作进行滤波
bg1=imclose(grd,strel('rectangle',[5,25]));%取矩形框的闭运算
subplot(3,4,7);imshow(bg1);title('图像闭运算[5,25]');%输出闭运算的图像
bg3=imopen(bg1,strel('rectangle',[5,19]));%取矩形框的开运算
输出:
SETP2:图像的灰度化:
彩色图像包含着大量的颜色信息,不但在存储上开销很大,而且在处理上也会降低系统的执行速度,因此在对图像进行识别等处理中经常将彩色图像转变为灰度图像,以加快处理速度。由彩色转换为灰度的过程叫做灰度化处理。选择的标准是经过灰度变换后,像素的动态范围增加,图像的对比度扩展,使图像变得更加清晰、细腻、容易识别。
bg4=imsubtract(bg3,bg2);%两幅图相减
subplot(3,4,10);imshow(bg4);title('增强车标图像');%输出增强车标图像
程序:
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;%获得最佳阈值
Egray=imsubtract(Sgray,Bgray);%两幅图相减
subplot(3,4,4);imshow(Egray);title('增强黑白图像');%输出黑白图像
输出:
STEP5:取得最佳阈值,将图像二值化:
二值图像是指整幅图像画面内仅黑、白二值的图像。在实际的车牌处理系统中,进行图像二值变换的关键是要确定合适的阀值,使得字符与背景能够分割开来,二值变换的结果图像必须要具备良好的保形性,不丢掉有用的形状信息,不会产生额外的空缺等等。车牌识别系统要求处理的速度高、成本低、信息量大,采用二值图像进行处理,能大大地提高处理效率。阈值处理的操作过程是先由用户指定或通过算法生成一个阈值,如果图像中某中像素的灰度值小于该阈值,则将该像素的灰度值设置为0或255,否则灰度值设置为255或0。
bw22=im2bw(Egray,level);%转换图像为二进制图像
bw2=double(bw22);
figure,imshow(bw2);title('图像二值化');%得到二值图像
输出:
STEP6:边缘检测:
两个具有不同灰度值的相邻区域之间总存在边缘,边缘就是灰度值不连续的结果,是图像分割、纹理特征提取和形状特征提取等图像分析的基础。为了对有意义的边缘点进行分类,与这个点相联系的灰度级必须比在这一点的背景上变换更有效,我们通过门限方法来决定一个值是否有效。所以,如果一个点的二维一阶导数比指定的门限大,我们就定义图像中的次点是一个边缘点,一组这样的依据事先定好的连接准则相连的边缘点就定义为一条边缘。经过一阶的导数的边缘检测,所求的一阶导数高于某个阈值,则确定该点为边缘点,这样会导致检测的边缘点太多。可以通过求梯度局部最大值对应的点,并认定为边缘点,去除非局部最大值,可以检测出精确的边缘。一阶导数的局部最大值对应二阶导数的零交叉点,这样通过找图像强度的二阶导数的零交叉点就能找到精确边缘点。
程序:
1
2
3
%将彩色图像转换为黑白并显示
Sgray = rgb2gray(Scolor);%rgb2gray转换成灰度图
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பைடு நூலகம்
3
%灰度图像与背景图像作减法,对图像进行增强处理:
subplot(3,4,8);imshow(bg3);title('图像开运算[5,19]');%输出开运算的图像
bg2=imopen(bg3,strel('rectangle',[11,24]));%取矩形框的开运算
subplot(3,4,9);imshow(bg2);title('图像开运算[11,24]');%输出开运算的图像
程序:
1
2
3
%边缘检测
grd=edge(bw2,'canny')%用canny算子识别强度图像中的边界
subplot(3,4,6);imshow(grd);title('图像边缘提取');%输出图像边缘
输出:
STEP7:对得到图像作开操作进行滤波:
数学形态非线性滤波,可以用于抑制噪声,进行特征提取、边缘检测、图像分割等图像处理问题。腐蚀是一种消除边界点的过程,结果是使目标缩小,孔洞增大,因而可有效的消除孤立噪声点;膨胀是将与目标物体接触的所有背景点合并到物体中的过程,结果是使目标增大,孔洞缩小,可填补目标物体中的空洞,形成连通域。先腐蚀后膨胀的过程称为开运算,它具有消除细小物体,并在纤细处分离物体和平滑较大物体边界的作用;先膨胀后腐蚀的过程称为闭运算,具有填充物体内细小空洞,连接邻近物体和平滑边界的作用。对图像做了开运算和闭运算,闭运算可以使图像的轮廓线更为光滑,它通常用来消掉狭窄的间断和长细的鸿沟,消除小的孔洞,并弥补轮廓线中的断裂。
设计目的:车牌定位系统的目的在于正确获取整个图像中车标的区域,并识别出车标。
程序效果:
程序实现:
STEP1:输入待处理的原始图像:
程序:
1
2
3
4
clear;clc;close all;
%Step1 获取图像 装入待处理彩色图像并显示原始图像
Scolor = imread('1.jpg');%imread函数读取图像文件
程序:
1
2
3
4
5
6
7
8
9
%对得到图像作开操作进行滤波
bg1=imclose(grd,strel('rectangle',[5,25]));%取矩形框的闭运算
subplot(3,4,7);imshow(bg1);title('图像闭运算[5,25]');%输出闭运算的图像
bg3=imopen(bg1,strel('rectangle',[5,19]));%取矩形框的开运算