基于OpenCV的车牌识别系统PPT课件
【优】车牌识别简介最全PPT

的神经网络中进行识别。
20
基于VTD,HTD字符识别方法
是基于VTD,HTD字符识别方法的完整步 骤,其中包括8个步骤:
步骤1,提取特征向量。20x35个像素 字符“2”的水平特征向量HTD为:
21
车牌图象的特点
牌照的尺寸、字间距、字数和字体基本统一; 车牌:宽440mm,高140mm 字符:宽45mm,高90mm
车牌部分的图象颜色与背景一般具有明显的差异,并 且字符和背景各自的灰度基本均匀;
牌照文字周围有一类似于长方形的边框;边框内部边 缘信息丰富,呈现一定的纹理特征;
车牌字符集为有限字符集,主要包括约50个汉字、25 个字母和10个数字。
由于车辆牌照字符只有20多个大写英文字母, 10个阿拉伯数字和约50个汉字,字符集比较小, 所以可以把所有这些可能的字符制成标准模板, 采用模板匹配的方法。这种识别方法简单、快 速,但识别率低、误识别率高。
18
基于小波变换的方法
对标准字符和分割好车牌字符进行正交小波变换获取 低频系数和高频系数,构造低频系统矢量和高频系统 矢量,定义隶属函数,设定阀值,并定义加权矩阵。 先将待识别字符的低频系数矢量与标准字符的低频系 数矢量比较,再比较高频系数矢量,最终获得识别结 果。
该方法是实现离散输入模式分类的有效途径之一,其实质是度量输入模式与标准模式之间的某种相似性,取相似性最大者为输入模式
基于OpenCV的车牌定位方法

据 车牌 的几何特征 ,从切割 出的水平区域 中得到精确 的车牌 区域 。实验 结果表 明 ,该方法 能够 快速 、准确定位 出车牌 ,还
具 有 很 强 的抗 干 扰 性 。
关键词 :开源计算机视 觉库 ;车牌定位 ;HS V颜 色空间 ;数 学形态学;最大类 间方差法 中图法分类号 : TP 3 9 1 文献标识号 :A 文章编号 :1 0 0 0 — 7 0 2 4( 2 0 1 3 )0 8 — 2 8 1 6 — 0 5
( Sc h o o l o f I n f o r ma t i o n En g i n e e r i n g,Z h e n g z h o u Un i v e r s i t y ,Z h e n g z h o u 4 5 0 0 0 1 ,Ch i n a ) Ab s t r a c t : An a c c u r a t e p o s i t i o n i n g l i c e n s e p l a t e b a s e d o n o p e n s o u r c e v i s i o n l i b r a r y Op e n CV f r o m c o mp l e x e n v i r o n me n t i s p r e s e n — t e d .U s i n g c o l o r f e a t u r e o f l i c e n s e p l a t e ,t h e o r i g i n a l i ma g e ,i s h a n d l e d r e s p e c t i v e l y ,i n t h e HS V C O l O r s p a c e a n d RGB c o l o r s p a c e p r o c e s s i n g t o g e t t WO b i n a r y i ma g e s .Ac c o r d i n g t o t h e t e x t u r e f e a t u r e s o f t wo b i n a r y i ma g e s ,t h e u p p e r a n d l o we r b o u n d a r i e s o f t h e l i c e n s e p l a t e f r o m b i n a r y i ma g e a r e g o t t e n i n t h e HS V c o l o r s p a c e .Th e p l a t e h o r i z o n t a l a r e a i s o b t a i n e d b y c u t t i n g t h e b i n a r y i ma g e o n t h e RGB c o l o r s p a c e i n a c c o r d a n c e wi t h t h e p o s i t i o n i n g o u t o f t h e u p p e r a n d l o we r b o u n d a r y c o o r d i n a t e s . Ac c o r d i n g t o t h e g e o me t r i c f e a t u r e s o f l i c e n s e p l a t e ,a c c u r a t e p l a t e r e g i o n f r o m t h e c u t t i n g l e v e l a r e a i s o b t a i n e d . Th e e x p e r i me n t a l r e s u l t s s h o w t h a t t h i s me t h o d c a n q u i c k l y a n d a c c u r a t e l y l o c a t e t h e p l a t e ,b u t a l s o h a s a s t r o n g a n t i n t e r f e r e n c e . Ke y wo r d s : Op e n C V ;c a r - p l a t e l o c a t i o n;HS V c o l o r s p a c e ;ma t h e ma t i c a l mo r p h o l o g y ;OS TU
基于MATLAB图像处理的汽车牌照识别系统

基于MATLAB 图像处理的汽车牌照识别系统仇成群(盐城师范学院,江苏盐城224002)汽车牌照识别系统是建设智能交通系统不可或缺的部分。
基于MATLAB 图像处理的汽车牌照识别系统是通过引入数字摄像技术和计算机信息管理技术,采用先进的图像处理、模式识别和人工智能技术,通过对图像的采集和处理,获得更多的信息,从而达到更高的智能化管理程度。
车牌识别系统整个处理过程分为预处理、边缘提取、车牌定位、字符分割、字符识别五大模块,用MATLAB 软件编程来实现每一个部分处理工程,最后识别出汽车牌照[1-4]。
1MATLAB 及其图像处理工具概述MATLAB 是MATrix LABoratory (矩阵实验室)的缩写,是Math Works 公司开发的一种功能强、效率高、简单易学的数学软件。
MATLAB 的图像处理工具箱,功能十分强大,支持的图像文件格式丰富,如*.BMP 、*.JPG 、*.JPEG 、*.GIF 、*.TIF 、*.TIFF 、*.PNG 、*.PCX 、*.XWD 、*.HDF 、*.ICO 、*.CUR 等。
MATLAB 7.1提供了20多类图像处理函数,几乎涵盖了图像处理的所有技术方法,是学习和研究图像处理的人员难得的宝贵资料和加工工具箱。
这些函数按其功能可分为:图像显示、图像文件I/O 、图像算术运算、几何变换、图像登记、像素值与统计、图像分析、图像增强、线性滤波、线性二元滤波设计、图像去模糊、图像变换、邻域与块处理、灰度与二值图像的形态学运算、基于边缘的处理、色彩映射表操作、色彩空间变换、图像类型与类型转换。
MATLAB 还着重在图形用户界面(GUI )的制作上作了很大的改善,对这方面有特殊要求的用户也可以得到满足。
本文将给出MATLAB 的图像处理工具箱中的图像处理函数实现图像处理与分析的应用技术实例。
2基于MATLAB 图像处理的汽车牌照识别系统2.1系统组成基于MATLAB 图像处理的汽车牌照识别系统主要包括车牌定位、字符车牌分割和车牌字符识别三个关键环节。
《车牌识别技术》PPT课件

随着汽车数量的逐年递增,摆在我们面前的是巨大的
城市交通压力。如何高效地进行交通管理,越来越成为我
们现实生活中的焦点问题。针对此问题,人们运用先进的
科学技术,相继研制开发出了各种交通道路监视、管理系
统,这些系统一般都包括车辆检测装置。通过这些装置对
过往的车辆实施检测,提取相关交通数据,用于达到监控、
管理和指挥交通的目的。汽车牌照的自动识别是车辆检测
精选课件ppt
10
车牌图像的预处理
平滑处理后的图像
未滤波直接提 取出的边缘
经灰度校正后 提取精选的课件边pp缘t
经平滑处理后 提取的边缘 11
车牌定位处理后结果
行方向区域和最终定位出来的车牌
精选课件ppt
12
进一步处理结果
精选课件ppt
13
车牌字符分割
• 完成牌照区域的定位后,再将牌照区域分 割成单个字符,然后进行识别。字符分割 一般采用垂直投影法。由于字符在垂直方 向上的投影必然在字符间或字符内的间隙 处取得局部最小值的附近,并且这个位置 应满足牌照的字符书写格式、字符、尺寸 限制和一些其他条件。利用垂直投影法对 复杂环境下的汽车图像中的字符分割有较 好的效果。
识别结果
精选课件ppt
20
未来发展方向
高速公路、城市交通、停车场等基础设施建设水平的 不断发展和车辆管理体制的不断完善,为以计算机视觉为 基础的智能交通管理系统的实际应用提供了契机。在智能 交通系统中,车牌自动识别系统是智能化交通系统非常重 要的发展方向。从开始的收费辅助系统演变过来的车牌识 别技术现在运用的领域是越来越广。它在车辆过路、过桥 全自动不停车收费,交通流量控制指标的测量,车辆自动 识别,高速公路上的事故自动测报,不停车检查,车辆定 位,汽车防盗,稽杏和追踪车辆违规、违法行为,维护交 通安全和城市治安,防止交通堵塞,提高收费路桥的服务 速度,缓解交通紧张状况等方面有重要作用,有重要的现 实应用意义。
基于OpenCV的车牌识别系统中车牌定位的实现

• 113•基于OpenCV的车牌识别系统中车牌定位的实现广东工业大学 魏 雄随着我国社会的迅猛发展,城市交通事业发展也随之步入快节奏,如今智能交通已成为发展的重要方向与研究热点,其中车牌识别技术(O Russakovsky,J Deng,H Su,et al.Image Net large scale visual recognition challenge:International Journal of Computer Vision 2015,115(3):211-263)作为智能交通中最重要的部分之一,一直是国内外学者们研究计算机视觉的热门问题。
该论文设计的车牌定位采用SVM 支持向量机与颜色特征结合从候选车牌中辨别真伪车牌,从而使车牌识别系统具有更快的速度与更高的效率。
基于OpenCV 库并在Visual Studio 2013环境下对该方法进行工程实现,结果表明该方法具有良好的鲁棒性与较高的准确性。
1.车牌定位本论文设计的车牌定位模块的方法是:若用相机捕捉到的图像中车牌方向角度没有太大的偏转或遮挡,则车牌图像中会包含很多的边缘,这些边缘很有可能就是车牌上的字符形成的,如果在一幅图像中有包含大量垂直边缘的矩形块,而且该矩形块的颜色为蓝色、黄色或绿色,则该矩形块很有可能就是车牌产生的图像块。
如图1为车牌定位的流程。
车牌定位的首任务即为对原始图像进行预处理,首先对图像用高斯滤波算子进行高斯平滑,该操作的目的是去除图像的高斯噪声。
然后把滤波后的图像进行灰度化处理,使其转化为灰度图像,这样接下来的操作都是灰度图处理,相比对原始彩色图像进行操作,灰度图处理更加高效快速。
Sobel 算子采用图2中的sobel 卷积因子提取图像中的垂直边缘。
图2 sobel算子图3 边缘提取后腐蚀得到的图像提取边缘后再对图像进行二值化处理,然后使用图像形态学处图1 车牌定位流程图• 114•理中的闭操作,闭操作之后就可以一张包含有很多矩形块的二值图像,其中车辆车牌就包含其中。
opencv车牌识别

7
车牌识别流程分析 一、车牌识别流程分析
提取车牌 CvMat mat; 建立矩阵 srcTri[0]=cvPointTo32f(pt[0]); 计算旋转矩阵 srcTri[1]=cvPointTo32f(pt[1]); srcTri[2]=cvPointTo32f(pt[3]); CvMat* cvGetPerspectiveTransform( CvMat* cvGetPerspectiveTransform( srcTri[3]=cvPointTo32f(pt[2]); 原图像四个角点存入数组
2.将其转变为Hu不变矩: 2.将其转变为 不变矩 将其转变为Hu不变矩: Void cvGetHuMoments( cvGetHuMoments( CvMoment* CvMoment* moments, 原矩 CvHuMoment* CvHuMoment* HuMoments 后生成的Hu不变矩 后生成的Hu不变矩 );
第三讲 车牌识别程序(2) 车牌识别程序(
姜宇
北京航空航天大学
2011年11月 2011年11月2日
1
车牌识别流程分析 一、车牌识别流程分析
第一步: 第一步:识别车牌位置 第二步: 第二步:提取车牌 第三步: 第三步:提取车牌上数字 第四步: 第四步:识别车牌上数字
2
车牌识别流程分析 一、车牌识别流程分析
解决方法: 解决方法: 1.判断二值化车牌中黑色的比例,如果黑色大于50% 1.判断二值化车牌中黑色的比例,如果黑色大于50%, 50%, 判断二值化车牌中黑色的比例 说明车牌底儿是深色的, 说明车牌底儿是深色的,需要做反色处理 2.两个相邻字符间的像元应该都是白色 2.两个相邻字符间的像元应该都是白色
const CvPoint2D32f* pts_src, 原图像四个角点坐标(数组) pts_src, 原图像四个角点坐标(数组)
基于labview的车牌识别PPT课件

车牌识别LPR是智能交通系统(ITS)的一个重要组成部分。在社会生 活,治安管理等方面有很大的作用。车牌识别技术的运用使得“大输 入小输出”成为了可能——输入一幅很大存储量的图像,输出时仅 仅是很小存储量的数字,这必然使得其在大量存储和管理数据库相连 等方面有无可替代的优越性。
Company Logo
基于labview设计的关于汽车牌 照的识别与检测
指导教师:
班级:测控一班 学生: 学号:
Company Logo
LOGO
系统的背景及意义
随着21 世纪经济全球化和信息时代的到来,计算机技术、通信技术 和计算机网络技术迅猛发展,动化的信息处理能力和水平不断提高, 并在人们社会活动和生活的各个领域得到广泛应用,高速度、高效率 的生活节奏,使汽车普及成为必然趋势。
右图是经过二值化得到的图像
Company Logo
车牌定位处理和labview与matlab混合编程
图像经过二值化后,就可以进行车牌定位。通过对比原始 图片,我们可以发现二值化后的图像已经很接近正确的车 牌位置了,因此后期处理将通过这张图来找出车牌位置。
毕业设计pythonopencv实现车牌识别界面

毕业设计pythonopencv实现车牌识别界⾯主要代码参考GitHub:答辩通过了,补完~这⾥主要是⽤两种⽅法进⾏定位识别# -*- coding: utf-8 -*-__author__ = '樱花落舞'import tkinter as tkfrom tkinter.filedialog import *from tkinter import ttkimport img_function as predictimport cv2from PIL import Image, ImageTkimport threadingimport timeimport img_mathimport tracebackimport debugimport configfrom threading import Threadclass ThreadWithReturnValue(Thread):def__init__(self, group=None, target=None, name=None, args=(), kwargs=None, *, daemon=None):Thread.__init__(self, group, target, name, args, kwargs, daemon=daemon)self._return1 = Noneself._return2 = Noneself._return3 = Nonedef run(self):if self._target is not None:self._return1,self._return2,self._return3 = self._target(*self._args, **self._kwargs)def join(self):Thread.join(self)return self._return1,self._return2,self._return3class Surface(ttk.Frame):pic_path = ""viewhigh = 600viewwide = 600update_time = 0thread = Nonethread_run = Falsecamera = Nonecolor_transform = {"green": ("绿牌", "#55FF55"), "yello": ("黄牌", "#FFFF00"), "blue": ("蓝牌", "#6666FF")}def__init__(self, win):ttk.Frame.__init__(self, win)frame_left = ttk.Frame(self)frame_right1 = ttk.Frame(self)frame_right2 = ttk.Frame(self)win.title("车牌识别")win.state("zoomed")self.pack(fill=tk.BOTH, expand=tk.YES, padx="10", pady="10")frame_left.pack(side=LEFT, expand=1, fill=BOTH)frame_right1.pack(side=TOP, expand=1, fill=tk.Y)frame_right2.pack(side=RIGHT, expand=0)bel(frame_left, text='原图:').pack(anchor="nw")bel(frame_right1, text='形状定位车牌位置:').grid(column=0, row=0, sticky=tk.W)from_pic_ctl = ttk.Button(frame_right2, text="来⾃图⽚", width=20, command=self.from_pic)from_vedio_ctl = ttk.Button(frame_right2, text="来⾃摄像头", width=20, command=self.from_vedio)from_img_pre = ttk.Button(frame_right2, text="查看形状预处理图像", width=20,command = self.show_img_pre) self.image_ctl = bel(frame_left)self.image_ctl.pack(anchor="nw")self.roi_ctl = bel(frame_right1)self.roi_ctl.grid(column=0, row=1, sticky=tk.W)bel(frame_right1, text='形状定位识别结果:').grid(column=0, row=2, sticky=tk.W) self.r_ctl = bel(frame_right1, text="",font=('Times','20'))self.r_ctl.grid(column=0, row=3, sticky=tk.W)self.color_ctl = bel(frame_right1, text="", width="20")self.color_ctl.grid(column=0, row=4, sticky=tk.W)from_vedio_ctl.pack(anchor="se", pady="5")from_pic_ctl.pack(anchor="se", pady="5")from_img_pre.pack(anchor="se", pady="5")bel(frame_right1, text='颜⾊定位车牌位置:').grid(column=0, row=5, sticky=tk.W) self.roi_ct2 = bel(frame_right1)self.roi_ct2.grid(column=0, row=6, sticky=tk.W)bel(frame_right1, text='颜⾊定位识别结果:').grid(column=0, row=7, sticky=tk.W) self.r_ct2 = bel(frame_right1, text="",font=('Times','20'))self.r_ct2.grid(column=0, row=8, sticky=tk.W)self.color_ct2 = bel(frame_right1, text="", width="20")self.color_ct2.grid(column=0, row=9, sticky=tk.W)self.predictor = predict.CardPredictor()self.predictor.train_svm()def get_imgtk(self, img_bgr):img = cv2.cvtColor(img_bgr, cv2.COLOR_BGR2RGB)im = Image.fromarray(img)imgtk = ImageTk.PhotoImage(image=im)wide = imgtk.width()high = imgtk.height()if wide > self.viewwide or high > self.viewhigh:wide_factor = self.viewwide / widehigh_factor = self.viewhigh / highfactor = min(wide_factor, high_factor)wide = int(wide * factor)if wide <= 0: wide = 1high = int(high * factor)if high <= 0: high = 1im = im.resize((wide, high), Image.ANTIALIAS)imgtk = ImageTk.PhotoImage(image=im)return imgtkdef show_roi1(self, r, roi, color):if r:roi = cv2.cvtColor(roi, cv2.COLOR_BGR2RGB)roi = Image.fromarray(roi)self.imgtk_roi = ImageTk.PhotoImage(image=roi)self.roi_ctl.configure(image=self.imgtk_roi, state='enable')self.r_ctl.configure(text=str(r))self.update_time = time.time()try:c = self.color_transform[color]self.color_ctl.configure(text=c[0], background=c[1], state='enable') except:self.color_ctl.configure(state='disabled')elif self.update_time + 8 < time.time():self.roi_ctl.configure(state='disabled')self.r_ctl.configure(text="")self.color_ctl.configure(state='disabled')def show_roi2(self, r, roi, color):if r:roi = cv2.cvtColor(roi, cv2.COLOR_BGR2RGB)roi = Image.fromarray(roi)self.imgtk_roi = ImageTk.PhotoImage(image=roi)self.roi_ct2.configure(image=self.imgtk_roi, state='enable')self.r_ct2.configure(text=str(r))self.update_time = time.time()try:c = self.color_transform[color]self.color_ct2.configure(text=c[0], background=c[1], state='enable')except:self.color_ct2.configure(state='disabled')elif self.update_time + 8 < time.time():self.roi_ct2.configure(state='disabled')self.r_ct2.configure(text="")self.color_ct2.configure(state='disabled')def show_img_pre(self):filename = config.get_name()if filename.any() == True:debug.img_show(filename)def from_vedio(self):if self.thread_run:returnif self.camera is None:self.camera = cv2.VideoCapture(0)if not self.camera.isOpened():mBox.showwarning('警告', '摄像头打开失败!')self.camera = Nonereturnself.thread = threading.Thread(target=self.vedio_thread, args=(self,))self.thread.setDaemon(True)self.thread.start()self.thread_run = Truedef from_pic(self):self.thread_run = Falseself.pic_path = askopenfilename(title="选择识别图⽚", filetypes=[("jpg图⽚", "*.jpg"), ("png图⽚", "*.png")]) if self.pic_path:img_bgr = img_math.img_read(self.pic_path)first_img, oldimg = self.predictor.img_first_pre(img_bgr)self.imgtk = self.get_imgtk(img_bgr)self.image_ctl.configure(image=self.imgtk)th1 = ThreadWithReturnValue(target=self.predictor.img_color_contours,args=(first_img,oldimg))th2 = ThreadWithReturnValue(target=self.predictor.img_only_color,args=(oldimg,oldimg,first_img))th1.start()th2.start()r_c, roi_c, color_c = th1.join()r_color,roi_color,color_color = th2.join()print(r_c,r_color)self.show_roi2(r_color, roi_color, color_color)self.show_roi1(r_c, roi_c, color_c)@staticmethoddef vedio_thread(self):self.thread_run = Truepredict_time = time.time()while self.thread_run:_, img_bgr = self.camera.read()self.imgtk = self.get_imgtk(img_bgr)self.image_ctl.configure(image=self.imgtk)if time.time() - predict_time > 2:r, roi, color = self.predictor(img_bgr)self.show_roi(r, roi, color)predict_time = time.time()print("run end")def close_window():print("destroy")if surface.thread_run:surface.thread_run = Falsesurface.thread.join(2.0)win.destroy()if__name__ == '__main__':win = ()surface = Surface(win)# close,退出输出destroywin.protocol('WM_DELETE_WINDOW', close_window) # 进⼊消息循环win.mainloop()。
基于OpenCV与深度学习的车牌识别软件的设计与开发

基于OpenCV与深度学习的车牌识别软件的设计与开发1. 引言1.1 研究背景车牌识别技术是近年来在智能交通领域得到广泛应用的一项重要技术。
随着汽车数量的不断增加和交通管理的日益严格,传统的人工巡逻方式已经无法满足对违章车辆的识别和管理需求。
研究车牌识别软件具有重要的实际意义。
目前,随着计算机视觉和深度学习技术的不断发展和完善,基于OpenCV和深度学习的车牌识别软件已经成为市场上的热门技术之一。
通过利用计算机视觉技术,可以实现对车辆牌照的自动识别和录入,提高交通管理的效率和准确性。
而深度学习技术的应用则可以提高识别的准确率和稳定性,进一步提升车牌识别软件的性能和可靠性。
本文将针对基于OpenCV与深度学习的车牌识别软件的设计与开发进行深入研究,探讨其在实际应用中的优势和局限性,为相关研究和实践提供参考依据。
通过对车牌识别技术的研究,将为智能交通领域的发展和改善提供有力支持,并促进相关技术的不断创新和进步。
1.2 研究意义车牌识别技术是智能交通系统中一个非常关键的部分。
通过车牌识别软件,可以实现车辆自动识别、追踪和管理,提高道路交通的效率和安全性。
这项技术的研究意义主要体现在以下几个方面:车牌识别技术可以提高城市交通管理的智能化水平。
通过车牌识别软件,城市交通管理部门可以实现对车辆的自动统计、监测和管理,从而更好地掌握道路交通的状况,及时调整交通流量,优化交通路线,提高道路通行效率。
车牌识别技术可以提升治安监控和安防系统的效率。
通过车牌识别软件,可以实现对车辆的自动追踪和记录,为治安监控和安防系统提供更加全面和精准的信息,有助于及时发现和防范各类安全隐患。
车牌识别技术可以促进智能交通系统的发展。
随着智能交通系统的兴起,车牌识别技术将成为智能交通系统中一个不可或缺的组成部分,有助于实现道路交通的智能化管理、提升行车安全性和提高交通运行效率。
对车牌识别技术进行深入研究和开发具有重要的意义和价值。
1.3 研究目的研究的目的是通过结合OpenCV与深度学习技术,设计并开发一个高效准确的车牌识别软件,以解决传统车牌识别系统在复杂场景下容易出现误识别或漏识别的问题。
基于嵌入式的Opencv车牌识别系统

分类号:密级学校代码:10165学号:2010871基于嵌入式的Opencv车牌识别系统作者姓名:学科、专业:研究方向:导师姓名:金芳晓光学光电检测技术及仪器姜春华教授2014年O5月辽宁师范大学硕士学术论文目录摘要………………………………………………………………………………………IIAbstract..……….….….……..….….…...….….……….….….….…….…….….….….………….….….……III目录……………………………………………………………………………………..IV1、绪论…………………………………………………………………………………………………………...1,1.1课题背景及意义……………………………………………………………...1.1.2课题相关技术的发展状况…………………………………………………..2.1.2.1数字图像处理领域的主要内容……………………………………...2.1.2.2数字图像处理技术的应用…………………………………………...2.1.3嵌入式移植OpenCV的意义……………………………………………….一2.1.4嵌入式车牌识别系统的概述………………………………………………..3.1.5课题内容以及章节安排……………………………………………………...3.2、总体设计…………………………………………………………………………...4.2.1硬件平台的选择……………………………………………………………...4.2.2软件系统设计………………………………………………………………...5.3、课题关键技术的分析……………………………………………………………...7.3.1车牌预处理…………………………………………………………………..7.3.1.1图像直方图均衡化…………………………………………………...7.3.1.2边缘检测……………………………………………………………...9.3.1.3膨胀和腐蚀处理…………………………………………………….13.3.2车牌区域查找与定位……………………………………………………….14.3.2.1车牌的筛选………………………………………………………….14.3.2.2傅里叶变换在数字图像处理中的应用…………………………….15.3.2.3车牌几何变换……………………………………………………….17.3.2.4灰度化处理………………………………………………………….19.3.3字符提取…………………………………………………………………….21.3.3.1图像二值化处理…………………………………………………….21.3.3.2去除干扰…………………………………………………………….23.3.3.3字符筛选…………………………………………………………….25.3.3.4车牌中文字符定位………………………………………………….25.3.4字符的识别与匹配………………………………………………………….26.IV辽宁师范大学硕士学术论文1.2课题相关技术的发展状况1.2.1数字图像处理领域的主要内容在车牌识别系统中,如果要想获得准确的车牌信息,数字图像处理技术的支持就是必不可少的重要组成部分。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
-
15
字符的识别
• 识别过程:
建立自动识别的代 码表
读取分割出来的字
识别完成,输出此 模板对应值
待识别字符与模板字符相减,值越小相 似度越大,找到最小的一个即为匹配的 最好的
-
第一个字符与模板 中的汉字模板进行 匹配
第二个字符与模板 中的字母模板进行 匹配
后5个字符与模板 中的字母与数字模 板进行匹配
-
2
主要内容
• 图像获取 • 图像预处理 • 车牌定位 • 字符分割 • 字符识别
-
3
图像获取
• 利用OpenCV库函数可以对摄像机进行操作, 首先定义CvCapture结构变量captrue并初 始化
• 然后使用库函数cvCreateCameraCapture() 从摄像机得到视频信息
• 获取视频信息后还要获取图像,首先要定 义IplImage结构变量frame并进行初始化
-
10
车牌的定位
• 定位结果显示:
-
11
字符的分割
• 存在的问题: 1、最大问题是二值化不彻底使投影图像中字
符间的波谷不够分明 2、车牌污损、反光、光照不均等原因使车牌
图 像交差,存在大量噪声 3、车牌边框和铆钉也会造成分割不正确 4、牌的前两个字符和后面五个字符之间的间
隔符(小圆点)对字符识别有影响 5、车牌旋转对水平分割有较大影响
上海大学
[数字图像处理]
基于OpenCV的车牌识别系统设计
---马金峰,宋福星,杨伟
-
1
背景及意义
• 牌照识别系统 简称 LPR(License Plate Recognition),是智能交通系统的基础和核 心技术之一,在交通管理自动化和智能化 中占据重要地位。
• 车牌识别系统是智能交通系统的一个非常 重要的方向,主要由图像采集,车牌定位, 字符分割以及字符识别四个部分组成,具 有良好的实用价值,目前主要应用于公路 治安卡口,开放式收费站,车载移动查车, 违章记录系统,门禁管理,停车场管理等 场合。
• 从获取的视频中得到图像帧frame = cvQueryFrame(capture).
-
4
图像的预处理
• 利用opencv库函数获取的图像是彩色图像, 即每个像素点由R,G,B三个分量组成, 直接计算量很大,很难达到实时快速识别 的目的,在实际应用中要转换为灰度图像, 转换公式如下:
Y = 0.299R+0.587G+0.114B
• 图像的闭运算:先膨胀后腐蚀的过程称为 闭运算。它具有填充物体内细小空洞,连 接邻近物体和平滑边界的作用。
-
9
车牌的定位
• 精确定位方法:通过计算寻找X,Y方向车 牌的区域来分割出车牌区域。
• 原理:使用统计白色像素点的方法分割出 车牌区域,确定车牌底色蓝色二值化后对 应的灰度范围,然后统计在行方向的颜色 范围内的像素点数量,确定车牌在行方向 的区域。然后,在分割出的行区域内,统 计列方向像素点的数量,最终确定完整的 车牌区域。
16
识别结果显示
-
17
logo
本次课题结束,谢谢
-
18
-
13
字符的分割
• 分割的结果
浙CS B 1 2 3
-
14
字符 的识别
• 使用基于模板的匹配方法 • 原理:首先对待识别字符进行二值化并将
其尺寸大小缩放为字符数据库中模板的大 小,然后与所有的模板进行匹配,最后选 最佳匹配作为结果。 • 模板匹配的特点:模板匹配的主要特点是 实现简单,当字符较规整时对字符图像的 缺损、污迹干扰适应力强且识别率相当高。
-
7
车牌的定位
• 定位步骤:
预处理后的图 像
图像的形态学处 理
通过计算寻找X, Y方向车牌的区 域
对分割出的车牌 做进一步处理
完成车牌的定位
-
8
车牌的定位
• 图像的腐蚀:腐蚀处理的作用是将目标图 形收缩。
• 图像的膨胀:膨胀的处理的作用是将目标 图形扩大。
• 图像的开运算:先腐蚀后膨胀的过程称为 开运算。它具有消除细小物体,在纤细处 分离物体和平滑较大物体边界的作用。
• 对灰度图像进行二值化处理
• 采用robert边缘检测法
-
5
预处理后的结果
-
6
车牌的定位ห้องสมุดไป่ตู้
• 该系统的摄像头拍摄的图片是整个机动车的图片, 而只有车牌部分是对系统有用的。所以我们要对 照片进行车牌定位和分割。
• 车牌的定位是从经过图像预处理后的灰度图像中 确定牌照位置,并将车牌部分从整个图像中分割 出来,从而进行字符识别。
-
12
字符的分割
• 字符分割的步骤:
[m,n]=size(d),逐排检查有没有白色像素点, 设置1<=j<n-1,若图像两边s(j)=0,则切割, 去除图像两边多余的部分
切割去图像上下多余的部分
根据图像的大小,设置一阈值,检 测图像的X轴,若宽度等于这一阈 值则切割,分离出七个字符
归一化切割出来的字符图像的大小为 40*20,与模板中字符图像的大小相匹配