目录
第1章 绪论 1
1.1研究背景与意义 1
1.2课题研究现状 1
1.3研究目标 1
1.4研究内容与论文组织结构 1
第2章 相关理论与关键技术 3
2.1计算机视觉概述 3
2.2 Opencv计算机视觉函数库 3
2.3车牌规律 4
2.4车牌识别技术概要 5
2.5车牌识别系统流程 5
2.5.1车牌图像采集 5
2.5.2图像预处理 5
2.5.3车牌定位 5
2.5.4字符分割 6
2.5.5字符识别 6
第3章 系统的概要设计 8
3.1概要设计 8
3.2软件总体功能设计 8
3.2.1具体功能简介 8
3.3车牌识别的工作流程 9
第4章 详细设计与实现 11
4.1图像预处理 11
4.2车牌定位 12
4.3截图识别 16
4.4摄像头实时识别 18
4.5路径批量识别 19
4.6来自车牌图片信息识别 21
第5章 测试和结果分析 23
5.1系统测试方法 23
5.2功能测试 23
第6章 总结与展望 28
6.1项目不足 28
6.2研究展望 28
6.3总结语 28
参考文献 30
致谢 31
第3章 系统的概要设计
3.1概要设计
根据目前社会需要,车牌识别系统一般需要能够实现以下功能:
1.初始界面:初始界面对于用户来说是对该系统制作的“第一印象”,初始界面需要有简单明了的按键以及分区,用户通过这个界面就可以清楚的知道某一个按键或某一个分区的具体作用是什么,这样既提高了用户的使用舒适度,也提高了系统的使用效率。
2.车牌图像的预处理:通过捕捉车牌的图像后,车牌识别系统需要基于一定的图像处理算法来对车牌图像进行简单处理。
3.车牌定位:该模块通过使用一定的算法来进一步锁定车牌所在位置,目的是为了方便对车牌上的字符进行字符分割。
4.字符分割:基于上一步的车牌定位后我们可以锁定车牌所在位置,然后将定位到的车牌图片进行进一步的处理,将处理后的字符与模板库匹配从而获得单独的字符。
5.字符识别:识别字符分割后的单独的字符,将识别到的结果输出到屏幕上,识别成功。
3.2软件总体功能设计
在本系统中,实现的功能共有五个功能分别是:截图识别、摄像头实时识别、拍照识别、路径批量识别、来自图片识别。如图3.1所示为车牌识别系统功能框架。

图3.1车牌识别系统功能框架
3.2.1具体功能简介
最终搭建起的系统界面如图3.2所示,系统功能主要分为五个操作区域。

图3.2系统界面
(1)“截图识别”功能模块用户可以将显示界面的任何车牌图片进行截图,截图完成后将会自动上传至系统,系统会对截取到的车牌图片进行识别。
(2)“摄像头实时识别”功能模块用于连接系统指定的摄像头,并且在指定摄像头所捕获的图像进行进一步分析。该模块可以捕捉动态的图像,实时分析模式仅在低视频帧率、高的PC配置时才可以使用。因此用户在使用摄像头实时识别时会感到有卡顿。
(3)“拍照识别”功能模块,同摄像头实时识别一样连接系统指定的摄像头,并且在指定摄像头所捕获的图像进行分析。但与摄像头实时识别不同的是,拍照识别不能动态的对车牌进行识别,只能通过拍摄具体照片来进行车牌识别,也就是说从拍照识别转换为了静态图片识别。
(4)”路径批量识别”功能模块用于打开用户指定的文件夹,支持识别的图像格式为jpg、jpeg、png等图片格式,通过对大量图像的顺序命名可以实现图像的连续打开。
(5)“来自图片识别”功能模块用于选择打开单幅的jpg、jpeg、png图像使得系统对打开的车牌图片进行识别。

下面是摄像头实时识别的主要代码:
def video(self):if self.thread_run:if self.camera.isOpened():self.camera.release()print("关闭摄像头")self.camera = Noneself.thread_run = Falsereturnif self.camera is None:self.camera = cv2.VideoCapture(1)if not self.camera.isOpened():self.camera = Noneprint("没有外置摄像头")self.camera = cv2.VideoCapture(0)if not self.camera.isOpened():print("没有内置摄像头")tkinter.messagebox.showinfo('警告', '摄像头打开失败!')self.camera = Nonereturnelse:print("打开内置摄像头")else:print("打开外置摄像头")self.text.configure(text="")self.text2.configure(text="")self.thread = threading.Thread(target=self.video_thread)self.thread.setDaemon(True)self.thread.start()self.thread_run = Trueself.camera_flag = 0
def get_imgtk(self, img_bgr):img = cv2.cvtColor(img_bgr, cv2.COLOR_BGR2RGB)im = Image.fromarray(img)w, h = im.sizepil_image_resized = self.resize(w, h, im)imgtk = ImageTk.PhotoImage(image=pil_image_resized)return imgtk
def video_thread(self):self.thread_run = Truewhile self.thread_run:_, self.img_bgr = self.camera.read()self.imgtk = self.get_imgtk(self.img_bgr)self.image_ctl.configure(image=self.imgtk)print("run end")

















基于Python的车牌识别系统的实现相关推荐

  1. 基于机器学习的车牌识别系统(Python实现基于SVM支持向量机的车牌分类)

    基于机器学习的车牌识别系统(Python实现基于SVM支持向量机的车牌分类) 一.数据集说明 训练样本来自于github上的EasyPR的c++版本,包含一万三千多张数字及大写字母的图片以及三千多张中 ...

  2. Python 基于 opencv 的车牌识别系统, 可以准确识别车牌号

    大家好,我是程序员徐师兄,6 年大厂程序员经验,点击关注我 简介 毕业设计基于Opencv的车牌识别系统 车牌搜索识别找出某个车牌号 对比识别车牌系统 车牌数据库认证系统 车牌图文搜索系统 车牌数据库 ...

  3. 基于matlab的车牌识别系统程序,基于matlab的车牌识别系统的设计(附程序).doc

    基于matlab的车牌识别系统的设计(附程序).doc 1车牌识别系统的设计1.摘要:汽车牌照自动识别系统是制约道路交通智能化的重要因素,包括车牌定位.字符分割和字符识别三个主要部分.本文首先确定车辆 ...

  4. 基于机器学习的车牌识别系统

    基于机器学习的车牌识别系统 本文设计的车牌处理系统主要用于通过手机.路口监视器拍到的车牌照片进行识别.由图像处理.车牌定位.字符分割和字符识别四个模块组成,该四部分需要依次执行,其中的每一模块需要利用 ...

  5. 基于Matlab的车牌识别系统完整版课论文分享 快看

    基于Matlab的车牌识别系统 一.设计原理 车辆车牌识别系统的基本工作原理为:将摄像头拍摄到的包含车辆车牌的图像通过视频卡输入到计算机中进行预处理,再由检索模块对车牌进行搜索.检测.定位,并分割出包 ...

  6. 【摸鱼神器】基于python的BOSS识别系统

    [摸鱼神器]基于python的BOSS识别系统 前言 一.整体设计 二.调用摄像头 三.人脸识别 1. 构建白名单库 2. 人脸匹配 四.切换屏幕 五.完整代码 写在最后 前言 Tip:本文仅供技术学 ...

  7. 基于Python_opencv的车牌识别系统

    基于python_opencv的车牌识别系统 一.说明 根据现有的车牌识别系统,本人对代码进行了优化,原有功能: 1.对图片中的车牌号进行识别,并对车牌所属地可视化 2.将识别出的车牌号.车牌所属地等 ...

  8. java车牌识别系统_基于jsp的车牌识别系统-JavaEE实现车牌识别系统 - java项目源码...

    基于jsp+servlet+pojo+mysql实现一个javaee/javaweb的车牌识别系统, 该项目可用各类java课程设计大作业中, 车牌识别系统的系统架构分为前后台两部分, 最终实现在线上 ...

  9. 开源!基于SpringBoot的车牌识别系统(附项目地址)

    公众号关注 "阿拉奇学Java" 设为 "星标",带你学习更多知识! 今天推荐一个基于SpringBoot的车牌识别系统. 介绍 spring boot + m ...

最新文章

  1. 记一次TIME_WAIT网络故障
  2. 《Java程序设计》第五周学习总结
  3. 教授直言:有些博导水平一般,名不副实,却不愿放弃招生指标
  4. redis在php中的应用(string篇)
  5. Pandas 文本数据方法 partition( )
  6. Android项目运行junit测试类时出现错误Internal Error (classFileParser.cpp:3494)的解决办法...
  7. redis用zset做延时消息
  8. 16. jQuery - 获取并设置 CSS 类
  9. YAF 菜鸟的学习笔记
  10. 数据标注工具YEDDA
  11. python十折交叉验证
  12. 弹出确认提示框,确定,取消
  13. 【论文简述及翻译】A Large Dataset to Train Convolutional Networks for Disparity, Optical Flow, and SceneFlow
  14. SPI FLASH的dummy指的是什么?
  15. Css的字体样式属性大全
  16. 警惕:互联网上充满了这样的「流量陷阱」
  17. 【机器学习】关联规则挖掘算法 + 三大案例实战 + Apriori算法 + Python代码实现
  18. 调取创蓝253国际短信验证码-代码示例2
  19. 大一计算机论文_大一计算机论文
  20. 反向比例运算电路微分关系_电气必备20个经典模拟电路

热门文章

  1. 分享一些微信支付/分账后端代码及问题收录
  2. 0基础转行软件测试,月薪6000和11000的必备技能,截然不同...
  3. 【BZOJ】2277: [Poi2011]Strongbox
  4. mysql sys模式_mysql8 参考手册-sys模式存储过程diagnostics()过程
  5. 活动目录是什么?有什么用?
  6. maya! board_送给自学3d建模的你,自学maya,zbrush,substance一个月的感想
  7. 安装MySQL报错:[Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defau
  8. 巴厘岛旅行摄影调色效果lr预设
  9. Pebble/RocksDB SST 文件详解
  10. 一次奇怪的服务器响应延时分析