文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

基于Python的车牌识别系统的实现

2023-10-20 14:47

关注

目录
第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 = None                self.thread_run = False            return        if self.camera is None:            self.camera = cv2.VideoCapture(1)            if not self.camera.isOpened():                self.camera = None                print("没有外置摄像头")                self.camera = cv2.VideoCapture(0)                if not self.camera.isOpened():                    print("没有内置摄像头")                    tkinter.messagebox.showinfo('警告', '摄像头打开失败!')                    self.camera = None                    return                else:                    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 = True        self.camera_flag = 0def get_imgtk(self, img_bgr):        img = cv2.cvtColor(img_bgr, cv2.COLOR_BGR2RGB)        im = Image.fromarray(img)        w, h = im.size        pil_image_resized = self.resize(w, h, im)        imgtk = ImageTk.PhotoImage(image=pil_image_resized)        return imgtkdef video_thread(self):        self.thread_run = True        while 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")

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

来源地址:https://blog.csdn.net/newlw/article/details/129969604

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯