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

合集下载

(完整版)基于matlab的车牌识别(含子程序)

(完整版)基于matlab的车牌识别(含子程序)

基于matlab的车牌识别系统一、对车辆图像进行预处理1.载入车牌图像:function [d]=main(jpg)[filename, pathname] = uigetfile({'*.jpg', 'JPEG 文件(*.jpg)'});if(filename == 0), return, endglobal FILENAME %定义全局变量FILENAME = [pathname filename];I=imread(FILENAME);figure(1),imshow(I);title('原图像');%将车牌的原图显示出来结果如下:2.将彩图转换为灰度图并绘制直方图:I1=rgb2gray(I);%将彩图转换为灰度图figure(2),subplot(1,2,1),imshow(I1);title('灰度图像');figure(2),subplot(1,2,2),imhist(I1);title('灰度图直方图');%绘制灰度图的直方图结果如下所示:3. 用roberts算子进行边缘检测:I2=edge(I1,'roberts',0.18,'both');%选择阈值0.18,用roberts算子进行边缘检测figure(3),imshow(I2);title('roberts 算子边缘检测图像');结果如下:4.图像实施腐蚀操作:se=[1;1;1];I3=imerode(I2,se);%对图像实施腐蚀操作,即膨胀的反操作figure(4),imshow(I3);title('腐蚀后图像');5.平滑图像se=strel('rectangle',[25,25]);%构造结构元素以正方形构造一个seI4=imclose(I3,se);% 图像聚类、填充图像figure(5),imshow(I4);title('平滑图像');结果如下所示:6. 删除二值图像的小对象I5=bwareaopen(I4,2000);% 去除聚团灰度值小于2000的部分figure(6),imshow(I5);title('从对象中移除小的对象');结果如下所示:二、车牌定位[y,x,z]=size(I5);%返回I5各维的尺寸,存储在x,y,z中myI=double(I5);%将I5转换成双精度tic %tic表示计时的开始,toc表示计时的结束Blue_y=zeros(y,1);%产生一个y*1的零阵for i=1:yfor j=1:xif(myI(i,j,1)==1)%如果myI(i,j,1)即myI的图像中坐标为(i,j)的点值为1,即该点为车牌背景颜色蓝色 %则Blue_y(i,1)的值加1Blue_y(i,1)= Blue_y(i,1)+1;%蓝色像素点统计endendend[temp MaxY]=max(Blue_y);%Y方向车牌区域确定%temp为向量white_y的元素中的最大值,MaxY为该值的索引PY1=MaxY;while ((Blue_y(PY1,1)>=5)&&(PY1>1))PY1=PY1-1;endPY2=MaxY;while ((Blue_y(PY2,1)>=5)&&(PY2<y))PY2=PY2+1;endIY=I(PY1:PY2,:,:);%x方向车牌区域确定%%%%%% X方向 %%%%%%%%%Blue_x=zeros(1,x);%进一步确定x方向的车牌区域for j=1:xfor i=PY1:PY2if(myI(i,j,1)==1)Blue_x(1,j)= Blue_x(1,j)+1; endendendPX1=1;while ((Blue_x(1,PX1)<3)&&(PX1<x))PX1=PX1+1;endPX2=x;while ((Blue_x(1,PX2)<3)&&(PX2>PX1))PX2=PX2-1;endPX1=PX1-1;%对车牌区域的校正PX2=PX2+1;dw=I(PY1:PY2-8,PX1:PX2,:);t=toc;figure(7),subplot(1,2,1),imshow(IY),title('行方向合理区域');%行方向车牌区域确定figure(7),subplot(1,2,2),imshow(dw),title('定位裁剪后的车牌彩色图像');的车牌区域如下所示:三、字符分割及处理1.车牌的进一步处理对分割出的彩色车牌图像进行灰度转换、二值化、均值滤波、腐蚀膨胀以及字符分割以从车牌图像中分离出组成车牌号码的单个字符图像,对分割出来的字符进行预处理(二值化、归一化),然后分析提取,对分割出的字符图像进行识别给出文本形式的车牌号码。

基于MATLAB的车牌识别系统设计

基于MATLAB的车牌识别系统设计

信电1&China Computer&Communication 软件卄域;与龛用2021年第2期基于MATLAB的车牌识别系统设计张金凤(南京交通职业技术学院,江苏南京211188)摘要:本文在对国内外车牌识别算法的现状和已有的技术进行研究的基础上,开发一个基于MATLAB的车牌识别系统.该系统使用Radon变换对倾斜的车牌进行准确校正,采用OTUS算法二值化车牌图像,利用形态学理论中的开操作和闭操作对图像进行细化处理。

关键词:车牌识别;字符分割;字符识别;MATLAB中图分类号:TP391.41;U495文献标识码:A文章编号:1003-9767(2021)02-153-03The Design of the License Plate Recognition System Based on MATLABZHANG Jinfeng(Nanjing Vocational Institute of Transport Technology,Nanjing Jiangsu211188,China)Abstract:This paper develops a MATLAB-based license plate recognition system based on the research on the current status of domestic and foreign license plate recognition algorithms and existing technologies.The system uses the Radon transform to accurately correct the tilted license plate,uses the OTUS algorithm to binarize the license plate image,and uses the open and closed operations in the morphological theory to refine the image.Keywords:license plate recognition;character segmentation;character recognition;MATLAB0引言一般来说,车辆牌照识别系统由相机、计算机和自定义设计的图像处理软件组成,是智能交通管理系统中的重要组成部分E。

如何使用Matlab技术进行车牌识别

如何使用Matlab技术进行车牌识别

如何使用Matlab技术进行车牌识别车牌识别技术是一种在现代交通管理、安保等领域应用广泛的技术。

通过使用Matlab软件,我们可以轻松实现车牌识别功能。

本文将介绍如何使用Matlab技术进行车牌识别。

一、图像预处理在进行车牌识别之前,首先需要对图像进行预处理。

图像预处理的目的是提取车牌信息并减小噪声干扰。

在Matlab中,我们可以使用一系列图像处理函数来实现图像预处理,包括图像二值化、边缘检测、形态学操作等。

这些函数可以帮助我们提取车牌轮廓,并去除背景和噪声。

二、车牌定位车牌定位是车牌识别的关键步骤之一。

通过车牌定位,我们可以找到图像中的车牌区域,并将其与其他区域进行区分。

在Matlab中,可以使用图像分割、形态学滤波等技术来实现车牌定位。

这些技术可以帮助我们提取车牌的形状、颜色和纹理等特征,并将其与其他区域进行区分。

三、字符分割一旦我们成功地定位了车牌区域,就需要将车牌中的字符进行分割。

字符分割是车牌识别中的一个重要环节。

通过将车牌中的字符进行分割,我们可以得到单个字符的图像,为后续的字符识别做准备。

在Matlab中,可以使用一系列图像处理函数来实现字符分割,包括边缘检测、连通性分析和投影分析等。

这些函数可以帮助我们将车牌中的字符与其他区域进行分离。

四、字符识别字符识别是车牌识别的核心任务。

通过对字符进行识别,我们可以得到车牌中的文本信息。

在Matlab中,可以使用模式识别、神经网络或者深度学习等技术来实现字符识别。

这些技术可以帮助我们训练一个分类器,将字符图像与对应的字符进行匹配。

通过匹配算法,我们可以得到车牌的文本信息。

五、车牌识别结果展示在进行车牌识别之后,我们可以将识别结果进行展示。

通过将识别结果与原始图像进行对比,我们可以验证车牌识别的准确性。

在Matlab中,可以使用图像绘制函数和文本显示函数来实现车牌识别结果的展示。

通过这些函数,我们可以在原始图像中标注出识别结果,并将结果显示在图像上。

基于MATLAB的车牌识别系统设计与实现

基于MATLAB的车牌识别系统设计与实现

基于MATLAB的车牌识别系统设计与实现刘忠杰;宋小波;何锋;李芬;周培莹;刘百辰【摘要】This paper introduced a design and experimental simulation method of license plate recognition system based on the research of license plate location,license plate character segmentation and license plate character recognition.This method firstly located%通过对车牌定位、车牌字符分割和车牌字符识别进行研究,提出了一种车牌识别系统的设计和实验仿真方法。

该方法首先采用基于Canny算子边缘检测和数学形态学相结合的方法定位出车牌,进行二值化、滤波和形态学开运算后使用投影二分法分割出7个车牌字符,最后使用模板匹配和特征统计相结合的方法识别出车牌字符。

试验表明该方法是有效的、可行的,与传统使用单一算法相比较,该方法大大提高了车牌识别系统的正确率。

【期刊名称】《微型机与应用》【年(卷),期】2011(030)014【总页数】4页(P37-40)【关键词】图像预处理;车牌定位;车牌字符分割;车牌字符识别【作者】刘忠杰;宋小波;何锋;李芬;周培莹;刘百辰【作者单位】常州先进制造技术研究所机器人系统实验室,江苏常州213164;常州先进制造技术研究所机器人系统实验室,江苏常州213164;常州先进制造技术研究所机器人系统实验室,江苏常州213164;常州先进制造技术研究所机器人系统实验室,江苏常州213164;常州先进制造技术研究所机器人系统实验室,江苏常州213164;常州先进制造技术研究所机器人系统实验室,江苏常州213164【正文语种】中文【中图分类】TP391.43随着世界经济和科学技术的不断发展,智能交通系统越来越多地被人们所关注。

(完整版)MATLAB车牌识别

(完整版)MATLAB车牌识别

目录1.引言 (2)2.设计概述 (3)2.1车牌识别技术 (3)2.2 车牌识别技术的发展 (3)2.3 车牌识别技术的国内外研究现状 (4)2.4 主要应用领域 (6)3.设计方案 (7)4.车牌识别系统的matlab实现 (8)4.1 图像的读取 (8)4.2 图像预处理 (9)4.2.1灰度变换 (9)4.2.2 图像校正 (10)4.3 牌照分割 (10)4.3.1 图像边缘提取及二值化 (11)4.3.2 BP神经网络 (14)4.4 车牌提取 (15)5.设计结果及分析 (16)5.1程序运行结果 (16)5.2程序结果分析 (17)总结体会 (18)参考文献 (19)附录1 (20)附录2 (28)1.引言伴随着世界各国车辆数量的增加,城市交通状况日益受到人们的重视。

如何有效地进行交通管理,越来越成为各国政府的相关部门所关注的焦点。

针对这一问题,人们运行先进的信息处理技术、导航定位技术、无线通信技术、自动控制技术、图像处理和识别技术及计算机网络技术等科学技术,相继研发了各种交通道路监视管理系统、车辆控制系统及公共交通系统。

这些系统将车辆和道路综合起来进行考虑,运行各种先进的技术解决道路交通的问题,统称为智能交通系统( Intelligent Transportation System,简称ITS)。

ITS 是20世纪90年代兴起的新一代交通运输系统。

它可以加强道路、车辆、驾驶员和管理人员的联系,实现道路交通管理自动化和车辆行驶的智能化,增强交通安全,减少交通堵塞,提高运输效率,减少环境污染,节约能源,提高经济活力。

智能交通系统以车辆的自动检测作为信息的来源,因而对车牌照等相关信息的自动采集和处理的一门新的交通信息获取技术——车牌识别(License Plate Recognition ,LPR) 技术逐渐发展起来,成为信息处理技术的一项重要研究课题。

车牌自动识别是智能交通管理系统中的关键技术之一。

交通标志检测与识别matlab 和python

交通标志检测与识别matlab 和python

交通标志检测与识别可以使用MATLAB和Python进行实现。

这里给出一个简单的例子,使用Python和OpenCV库进行交通标志检测与识别。

首先,确保已经安装了Python和OpenCV库。

可以使用以下命令安装OpenCV:```bashpip install opencv-python```接下来,创建一个名为`traffic_sign_detection.py`的Python文件,并添加以下代码:```pythonimport cv2# 加载预训练的模型model = cv2.dnn.readNetFromTensorflow('frozen_inference_graph.pb', 'graph.pbtxt')# 读取图像image = cv2.imread('test_image.jpg')# 将图像转换为blob格式blob = cv2.dnn.blobFromImage(image, size=(300, 300), swapRB=True, crop=False)# 设置输入并进行前向传播model.setInput(blob)output = model.forward()# 获取检测结果for detection in output[0, 0, :, :]:confidence = detection[2]if confidence > 0.5:class_id = int(detection[1])x1, y1, x2, y2 = (detection[3:7] * [image.shape[1], image.shape[0], image.shape[1], image.shape[0]]).astype(int)# 绘制边界框和类别标签cv2.rectangle(image, (x1, y1), (x2, y2), (0, 255, 0), 2)label = f"Class {class_id}: {confidence:.2f}"cv2.putText(image, label, (x1, y1 - 10), cv2.FONT_HERSHEY_SIMPLEX, 0.5, (0, 255, 0), 2)# 显示结果cv2.imshow('Traffic Sign Detection', image)cv2.waitKey(0)cv2.destroyAllWindows()```注意:这个例子需要一个预训练的模型(`frozen_inference_graph.pb`和`graph.pbtxt`),你可以从互联网上找到一些开源的交通标志检测模型。

车牌识别的matlab程序-(详细注释,并有使用注意点)

附录车牌识别程序clear ;close all;%Step1 获取图像装入待处理彩色图像并显示原始图像Scolor = imread('3.jpg');%imread函数读取图像文件%将彩色图像转换为黑白并显示Sgray = rgb2gray(Scolor);%rgb2gray转换成灰度图figure,imshow(Scolor),title('原始彩色图像');%figure命令同时显示两幅图figure,imshow(Sgray),title('原始黑白图像');%Step2 图像预处理对Sgray 原始黑白图像进行开操作得到图像背景s=strel('disk',13);%strel函数Bgray=imopen(Sgray,s);%打开sgray s图像figure,imshow(Bgray);title('背景图像');%输出背景图像%用原始图像与背景图像作减法,增强图像Egray=imsubtract(Sgray,Bgray);%两幅图相减figure,imshow(Egray);title('增强黑白图像');%输出黑白图像%Step3 取得最佳阈值,将图像二值化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);%Step4 对得到二值图像作开闭操作进行滤波figure,imshow(bw2);title('图像二值化');%得到二值图像grd=edge(bw2,'canny')%用canny算子识别强度图像中的边界figure,imshow(grd);title('图像边缘提取');%输出图像边缘bg1=imclose(grd,strel('rectangle',[5,19]));%取矩形框的闭运算figure,imshow(bg1);title('图像闭运算[5,19]');%输出闭运算的图像bg3=imopen(bg1,strel('rectangle',[5,19]));%取矩形框的开运算figure,imshow(bg3);title('图像开运算[5,19]');%输出开运算的图像bg2=imopen(bg3,strel('rectangle',[19,1]));%取矩形框的开运算figure,imshow(bg2);title('图像开运算[19,1]');%输出开运算的图像%Step5 对二值图像进行区域提取,并计算区域特征参数。

基于Matlab的车牌识别(完整版)

基于Matlab的车牌识别(完整版)基于Matlab的车牌识别摘要:车牌识别技术是智能交通系统的重要组成部分,在近年来得到了很大的发展。

本文从预处理、边缘检测、车牌定位、字符分割、字符识别五个方面,具体介绍了车牌自动识别的原理。

并用MATLAB软件编程来实现每一个部分,最后识别出汽车车牌。

一、设计原理车辆车牌识别系统的基本工作原理为:将摄像头拍摄到的包含车辆车牌的图像通过视频卡输入到计算机中进行预处理,再由检索模块对车牌进行搜索、检测、定位,并分割出包含车牌字符的矩形区域,然后对车牌字符进行二值化并将其分割为单个字符,然后输入JPEG或BMP格式的数字,输出则为车牌号码的数字。

车牌自动识别是一项利用车辆的动态视频或静态图像进行车牌号码、车牌颜色自动识别的模式识别技术。

其硬件基础一般包括触发设备、摄像设备、照明设备、图像采集设备、识别车牌号码的处理机等,其软件核心包括车牌定位算法、车牌字符分割算法和光学字符识别算法等。

某些车牌识别系统还具有通过视频图像判断车辆驶入视野的功能称之为视频车辆检测。

一个完整的车牌识别系统应包括车辆检测、图像采集、车牌识别等几部分。

当车辆检测部分检测到车辆到达时触发图像采集单元,采集当前的视频图像。

车牌识别单元对图像进行处理,定位出车牌位置,再将车牌中的字符分割出来进行识别,然后组成车牌号码输出。

二、设计步骤总体步骤为:车辆→图像采集→图像预处理→车牌定位→字符分割→字符定位→输出结果基本的步骤:a.车牌定位,定位图片中的车牌位置;b.车牌字符分割,把车牌中的字符分割出来;c.车牌字符识别,把分割好的字符进行识别,最终组成车牌号码。

车牌识别过程中,车牌颜色的识别依据算法不同,可能在上述不同步骤实现,通常与车牌识别互相配合、互相验证。

(1)车牌定位:自然环境下,汽车图像背景复杂、光照不均匀,如何在自然背景中准确地确定车牌区域是整个识别过程的关键。

首先对采集到的视频图像进行大范围相关搜索,找到符合汽车车牌特征的若干区域作为候选区,然后对这些侯选区域做进一步分析、评判,最后选定一个最佳的区域作为车牌区域,并将其从图象中分割出来。

基于Matlab的车牌识别课程设计报告


导入原始 图像
图像预处理 增强效果图
进行边缘 提取
车牌具体 位置定位
对车牌进 行处理
输出 结果
对分割的字 符进行识别
字符特征 提取
对字符进 行归一化
对字符进行 分割
图1 牌照识别系统原理图
该系统是计算机 图像处理与字符识别技术在 智能化交通管理系统中的应用 ,它 主 要 由 牌 照 图 像 的 采 集 和 预 处 理 、牌 照 区 域 的 定 位 和 提 取 、牌 照 字 符 的 分 割 和 识 别 等几个部分组成,如图1 所示。其基本工作过程如下:
对比以上几幅图片,图 12 的边缘已经模糊掉了。图 11 中包含的噪声太多, 图 13 未经滤波直接提取出的边缘图像最清晰,所包含的有用信息最多。
(二)、牌照的定位和分割
牌照的定位和分 割是牌照识别系统的关键技 术之一,其主要目的是在经图象预 处 理 后 的 原 始 灰 度 图 象 中 确 定 牌 照 的 具 体 位 置 ,并 将 包 含 牌 照 字 符 的 一 块 子 图 象 从 整个图象中分割出来,供字符识别子系 统识别之用,分割的准确与否直接关系到整 个 牌 照 字 符 识 别 系 统 的 识 别 率 。根 据 其 灰 度 值 与 周 边 区 域 有 明 显 的 不 同 ,在 其 边 缘 形成了灰度突变的边界,这样就便于通过边缘检测来对图象进行分割。
牌 区 域 , 确 定 车 牌 底 色 蓝 色 RGB对 应 的 各 自 灰 度 范 围 , 然 后 行 方 向 统 计 在 此 颜 色 范
围 内 的 像 素 点 数 量 ,设 定 合 理 的 阈 值 ,确 定 车 牌 在 行 方 向 的 合 理 区 域 。然 后 ,在 分
割出的行区域内,统计列方向蓝色像素点的数量,最终确定完整的车牌区域。

基于MATLAB平台下的车牌识别系统设计

科技与创新┃Science and Technology &Innovation·20·2020年第14期文章编号:2095-6835(2020)14-0020-03基于MATLAB 平台下的车牌识别系统设计楚天鸿1,唐瑞尹2(1.华北理工大学电气工程学院,河北唐山063210;2.北华航天工业学院电子与控制工程学院,河北廊坊065000)摘要:科技的快速发展使汽车成为现代社会的重要代步工具,促生了新一代的智能交通系统,车牌识别技术作为智能交通的基石,为交通管理提供了技术支撑,使人们的驾车出行更为方便快捷。

将车牌识别与计算机软件相结合,在MATLAB 平台下,运用数字图像处理技术,对采集到的车辆图像进行相关操作,完成了对汽车牌照的定位和字符的分割。

同时,将改进后的模板匹配识别方法运用到字符识别中,使系统正确识别出车牌字符,实现了自动识别汽车牌照的目的。

关键词:车牌识别;MATLAB ;图像处理;模板匹配中图分类号:TP391.41文献标识码:ADOI :10.15913/ki.kjycx.2020.14.006自2013年起,中国汽车保有量逐年递增,2019年中国汽车保有量已经达到2.6亿辆,与2018年相比增长了8.83%。

这足以说明汽车已经成为民众生活中不可或缺的工具,给人们的出行带来方便的同时也给交通带来了巨大压力,建立一个完善的智能交通系统的需求愈发强烈。

计算机相关的科学技术迅猛发展以及现代网络科技的广泛应用,带动智能信息化功能处理技术不断完善,同时为现代汽车管理手段提供了新思路和新方案[1]。

汽车牌照是每辆汽车特有的身份证明,而车牌识别系统也成为了高速路、小区门禁、停车场等场所的必备工具,在交通管制等方面发挥着重要的作用。

车牌识别技术主要包括车牌定位、字符分割、字符识别三个部分[2],通过对采集到的车辆图像进行相关处理就可成功获取车牌号码,完成车牌识别。

本文在MATLAB 软件平台下,设计车牌识别系统,对小型汽车蓝底白字的车牌图像进行相关处理,实现车牌识别功能。

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