基于python+OpenCV的车牌号码识别

article/2025/9/21 11:30:00

基于python+OpenCV的车牌号码识别

车牌识别行业已具备一定的市场规模,在电子警察、公路卡口、停车场、商业管理、汽修服务等领域已取得了部分应用。一个典型的车辆牌照识别系统一般包括以下4个部分:车辆图像获取、车牌定位、车牌字符分割和车牌字符识别

1、车牌定位的主要工作是从获取的车辆图像中找到汽车牌照所在位置,并把车牌从该区域中准确地分割出来
这里所采用的是利用车牌的颜色(黄色、蓝色、绿色) 来进行定位

#定位车牌
def color_position(img,output_path):colors = [([26,43,46], [34,255,255]),  # 黄色([100,43,46], [124,255,255]),  # 蓝色([35, 43, 46], [77, 255, 255])  # 绿色]hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)for (lower, upper) in colors:lower = np.array(lower, dtype="uint8")  # 颜色下限upper = np.array(upper, dtype="uint8")  # 颜色上限# 根据阈值找到对应的颜色mask = cv2.inRange(hsv, lowerb=lower, upperb=upper)output = cv2.bitwise_and(img, img, mask=mask)k = mark_zone_color(output,output_path)if k==1:return 1# 展示图片#cv2.imshow("image", img)#cv2.imshow("image-color", output)#cv2.waitKey(0)return 0

在这里插入图片描述

2、将车牌提取出来

def mark_zone_color(src_img,output_img):#根据颜色在原始图像上标记#转灰度gray = cv2.cvtColor(src_img,cv2.COLOR_BGR2GRAY)#图像二值化ret,binary = cv2.threshold(gray,0,255,cv2.THRESH_BINARY)#轮廓检测x,contours,hierarchy = cv2.findContours(binary,cv2.RETR_TREE,cv2.CHAIN_APPROX_NONE)#drawing = img#cv2.drawContours(drawing, contours, -1, (0, 0, 255), 3)  # 填充轮廓颜色#cv2.imshow('drawing', drawing)#cv2.waitKey(0)#print(contours)temp_contours = []  # 存储合理的轮廓car_plates=[]if len(contours)>0:for contour in contours:if cv2.contourArea(contour) > Min_Area:temp_contours.append(contour)car_plates = []for temp_contour in temp_contours:rect_tupple = cv2.minAreaRect(temp_contour)rect_width, rect_height = rect_tupple[1]if rect_width < rect_height:rect_width, rect_height = rect_height, rect_widthaspect_ratio = rect_width / rect_height# 车牌正常情况下宽高比在2 - 5.5之间if aspect_ratio > 2 and aspect_ratio < 5.5:car_plates.append(temp_contour)rect_vertices = cv2.boxPoints(rect_tupple)rect_vertices = np.int0(rect_vertices)if len(car_plates)==1:oldimg = cv2.drawContours(img, [rect_vertices], -1, (0, 0, 255), 2)#cv2.imshow("che pai ding wei", oldimg)# print(rect_tupple)break#把车牌号截取出来if len(car_plates)==1:for car_plate in car_plates:row_min,col_min = np.min(car_plate[:,0,:],axis=0)row_max,col_max = np.max(car_plate[:,0,:],axis=0)cv2.rectangle(img,(row_min,col_min),(row_max,col_max),(0,255,0),2)card_img = img[col_min:col_max,row_min:row_max,:]cv2.imshow("img",img)cv2.imwrite(output_img + '/' + 'card_img' + '.jpg',card_img)cv2.imshow("card_img.",card_img)cv2.waitKey(0)cv2.destroyAllWindows()return 1return 0

在这里插入图片描述
源代码链接:https://download.csdn.net/download/PYH1009/19479024?spm=1001.2014.3001.5501


http://chatgpt.dhexx.cn/article/fdsMMHCu.shtml

相关文章

TensorFlow进阶:车牌号识别项目

终于算是闲下来点时间了&#xff0c;也不能算闲&#xff0c;该交的报告什么的算完事了。其他要交的东西现在还不急&#xff0c;然后考研的东西现在也不想看&#xff0c;再加上中午没睡好&#xff0c;下午也不想学习新的东西了&#xff0c;就抽出点时间把前段时间做的一个小项目…

数字图像处理--车牌识别

数字图像处理–车牌识别 主要内容 实现车牌识别 算法流程 本文中&#xff0c;车牌识别具体流程设计以及算法使用主要分为以下几步。 1、读取源车牌图像。 2、对原始车牌图像进行预处理&#xff1a;灰度化&#xff0c;运用基于几何运算的滤波器(开运算)消除毛刺噪声。 3、二…

数字图像处理——基于matlab的车牌号识别

希望大家有问题多多评论留言鸭 码字不易&#xff0c;老阿姨头发都没啦&#xff0c;小可爱们记得给三连鸭&#xff0c;么么哒。 &#xff08;只收藏&#xff0c;不点赞&#xff0c;好运连连会中断&#xff01;&#xff01;&#xff01;&#xff09; <--!&#xff08;源码资源…

【OpenCV实战】简洁易懂的车牌号识别Python+OpenCV实现“超详解”(含代码)

前面4篇博客介绍了OpenCV图像处理的基础知识&#xff0c;本篇博客利用前4篇的知识完成一个小项目——车牌号码识别。该篇博客的代码可以满足小区门禁车牌号的识别。本篇博客是前4篇博客知识的一个综合运用。感觉学会了这个可以实现一系列的图像识别任务。。。毕竟好多技巧都是共…

网络安全检测技术

一&#xff0c;网络安全漏洞 安全威胁是指所有能够对计算机网络信息系统的网络服务和网络信息的机密性&#xff0c;可用性和完整性产生阻碍&#xff0c;破坏或中断的各种因素。安全威胁可分为人为安全威胁和非人为安全威胁两大类。 1&#xff0c;网络安全漏洞威胁 漏洞分析的…

深度学习网络安全

Introduction 我们在社区中看到的大多数深度学习应用程序通常面向营销&#xff0c;销售&#xff0c;财务等领域。我们几乎从未阅读过文章或找到有关深度学习的资源用于保护这些产品和业务&#xff0c; 恶意软件和黑客攻击。 虽然像谷歌&#xff0c;Facebook&#xff0c;微软和…

网络安全法学习整理笔记

网络安全法 一、背景 概念 网络&#xff1a;是指由计算机或者其他信息终端及相关设备组成的按照一定的规则和程序对信息进行收集、存储、传输、交换、处理的系统。网络安全&#xff1a;是指通过采取必要措施&#xff0c;防范对网络的攻击、侵入、干扰、破坏和非法使用以及意…

网络安全免费学习网址(英文)

转载 作者&#xff1a;W-Pwn 链接&#xff1a;https://www.zhihu.com/question/49222590/answer/339206050 来源&#xff1a;知乎 著作权归作者所有。商业转载请联系作者获得授权&#xff0c;非商业转载请注明出处。 知识就是力量 但是知识太贵了&#xff0c;现在随便拎…

【论文阅读】基于强化学习的网络安全防护策略

【论文阅读】基于强化学习的网络安全防护策略 本篇文章将介绍一篇针对网络安全问题&#xff0c;运用强化学习方法寻找最优的网络防御策略。 Finding Effective Security Strategies through Reinforcement Learning and Self-Play 前言 通过强化学习和 自对弈(self-play) 寻…

还在为不知道怎么学习网络安全而烦恼吗?这篇文带你从入门级开始学习网络安全—认识网络安全

随着网络安全被列为国家安全战略的一部分&#xff0c;这个曾经细分的领域发展提速了不少&#xff0c;除了一些传统安全厂商以外&#xff0c;一些互联网大厂也都纷纷加码了在这一块的投入&#xff0c;随之而来的吸引了越来越多的新鲜血液不断涌入。 不同于Java、C/C等后端开发岗…

[网络安全自学篇] 一.入门笔记之看雪Web安全学习及异或解密示例

最近开始学习网络安全相关知识&#xff0c;接触了好多新术语&#xff0c;感觉自己要学习的东西太多&#xff0c;真是学无止境&#xff0c;也发现了好几个默默无闻写着博客、做着开源的大神。准备好好学习下新知识&#xff0c;并分享些博客与博友们一起进步&#xff0c;加油。非…

码农翻身,卧虎藏龙

写公众号是很不容易的&#xff0c;在现在信息爆炸的情况下&#xff0c;好文章也很容易被标题党埋没&#xff0c;在我的知识星球“码农翻身”中&#xff0c;我发起了一个活动&#xff1a;免费给写公众号的球友们做个推广。 这个不是互推&#xff0c;就是我单方面的推广&#xf…

现在转行码农的成本已经非常高了,别盲目转行..

转行码农一直是个比较火热的话题&#xff0c;也有很多读者咨询过这个问题&#xff0c;转成功的也不少&#xff0c;比如下面这位香港的同学&#xff1a; 这位朋友半年前就跟我聊过&#xff0c;他不太想干没有技术含量的体力活&#xff0c;一直在坚持自学&#xff0c;这也算如愿…

农村出身的 90 后程序员,如何逆袭为中产阶级?| 程序员有话说

作者 | 阿文 责编 | 伍杏玲 出品 | 程序人生&#xff08;ID&#xff1a;coder_life&#xff09; 小蔡&#xff0c; 90 年 10 月出生&#xff0c;Java开发工程师&#xff0c;目前就职于杭州滨江某知名互联网公司从事云计算开发工作&#xff0c;2013 年毕业就从山东来到了杭州。 …

【一哥闲聊】程序员如何打破35岁魔咒

公众号推文规则变了&#xff0c;点击上方 "数据社"关注, 设为星标 后台回复【加群】&#xff0c;申请加入数据学习交流群 大家好&#xff0c;我是一哥。今天跟大家聊聊程序员35岁以后的方向怎么选&#xff1f; 作为程序员&#xff0c;行业内一直流传着35岁的魔咒&…

码农翻身(随笔)

书一直都有在读&#xff0c;我会一直更新博文&#xff0c;欢迎大家前来阅读、指教&#xff01; XML和注解 xml&#xff1a;应用于集中配置的场合&#xff0c;比如数据源的配置&#xff1b; 注解&#xff1a;像Controller、RequestMapping、Transactional这样的注解&#xff…

读《码农翻身》有感

前几日偶得一本《码农翻身》&#xff0c;闲来品读&#xff0c;收获颇丰。 作者刘欣老师可能是码农中故事讲得最好的人&#xff0c;能把线程&#xff0c;进程&#xff0c;死锁这种概念讲成计算机内部王国漫游记&#xff0c;能把分布式事务这种高级概念讲成java王国中的权贵大臣勾…

告别码农,成为真正的程序员

本文是我借助 Google 从网上拼凑的文章&#xff0c;可能条理不是很清晰&#xff0c;希望对广大程序员们有些帮助。 一、成长的寓言&#xff1a;做一棵永远成长的苹果树 一棵苹果树&#xff0c;终于结果了。 第一年&#xff0c;它结了10个苹果&#xff0c;9个被拿走&#xff0c;…

达到年薪百万,就算码农翻身了吗?

上周末有个小伙伴问我&#xff1a;码农怎么样才能真正地翻身&#xff1f; 我自己都没有翻身&#xff0c;更没有达到财务自由&#xff0c; 回答这样的问题显然是力不从心的。 &#xff08;郑渊洁对财务自由的定义&#xff1a;从现在开始不工作&#xff0c;能保持现在的生活水平不…

《码农翻身》之技术之路

《码农翻身》读书笔记之技术之路 这是我的后端读书笔记系列文章的第四三篇&#xff0c;选取的是最近刚刚圈粉的知名博主刘欣创作的《码农翻身》。这篇文章只是最后一部分内容。 本文内容主要根据知名博主刘欣一作《码农翻身》的内容总结而来&#xff0c;本书的内容风趣幽默&a…