这篇文章主要介绍了python+OpenCV实现车牌号码识别,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
基于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

其实这里不仅有技术,更有那些技术之外的东西,比如,如何做一个精致的程序员,而不是“屌丝”,程序员本身就是高贵的一种存在啊,难道不是吗?
内容就以上怎么多,最后给大家推荐一个口碑不错的公众号【程序员学府】,这里有很多的老前辈学习

技巧,学习心得,面试技巧,职场经历等分享,更为大家精心准备了零基础入门资料,实战项目资料,

每天都有程序员定时讲解Python技术,分享一些学习的方法和需要留意的小细节,非常欢迎你的加入,未来的日子,编码之外,有你有我,一起做一个人不傻,钱很多,活得久的快乐的程序员吧!

python基础教程:python+OpenCV实现车牌号码识别相关推荐

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

    基于python+OpenCV的车牌号码识别 车牌识别行业已具备一定的市场规模,在电子警察.公路卡口.停车场.商业管理.汽修服务等领域已取得了部分应用.一个典型的车辆牌照识别系统一般包括以下4个部分: ...

  2. python基础教程-Python入门教程完整版(懂中文就能学会)

    提取码:sjfo 目录大纲: 本套教程15天 学前环境搭建 1-3 天内容为Linux基础命令 4-13 天内容为Python基础教程 14-15 天内容为 飞机大战项目演练 视频概括: 第一阶段(1 ...

  3. 什么是python基础教程-python基础教程之python是什么?概念解析

    Python,是一种面向对象的解释型计算机程序设计语言,由荷兰人Guido van Rossum于1989年发明,第一个公开发行版发行于1991年. Python是纯粹的自由软件, 源代码和解释器CP ...

  4. python办公自动化知识点_Python自动化办公知识点整理汇总|python基础教程|python入门|python教程...

    https://www.xin3721.com/eschool/pythonxin3721/ 知乎上有人提问:用python进行办公自动化都需要学习什么知识呢? ​ 这可能是很多非IT职场人士面临的困 ...

  5. python下载电影天堂视频教程_一篇文章教会你利用Python网络爬虫获取电影天堂视频下载链接|python基础教程|python入门|python教程...

    https://www.xin3721.com/eschool/pythonxin3721/ [一.项目背景] 相信大家都有一种头疼的体验,要下载电影特别费劲,对吧?要一部一部的下载,而且不能直观的知 ...

  6. python基础教程-Python基础教程,Python入门教程(非常详细)

    Python 英文本意为"蟒蛇",直到 1989 年荷兰人 Guido van Rossum (简称 Guido)发明了一种面向对象的解释型编程语言(后续会介绍),并将其命名为 P ...

  7. python添加库详细教程_Python 中如何自动导入缺失的库?|python基础教程|python入门|python教程...

    https://www.xin3721.com/eschool/pythonxin3721/ 在写 Python 项目的时候,我们可能经常会遇到导入模块失败的错误:ImportError: No mo ...

  8. python3.6.2下载教程_Windows下升级Python3.7.7后(原Python3.6.2版本)如何切换Python版本|python基础教程|python入门|python教程...

    https://www.xin3721.com/eschool/pythonxin3721/ 笔者:风起怨江南 出处:https://www.cnblogs.com/mengjinxiang 笔者原创 ...

  9. Python基础教程:Python pass语句详解

    2019独角兽企业重金招聘Python工程师标准>>> Python pass 语句 Python pass是空语句,是为了保持程序结构的完整性. pass 不做任何事情,一般用做占 ...

最新文章

  1. 福利 | 送你一张通往「2019 AI开发者大会」的门票
  2. pip freeze requirements.txt 分隔 sudo pip install -r requirements.txt
  3. node / npm 配置问题
  4. 基于RadeonRays的光线追踪全局光照实现方案
  5. delphi使用存储过程
  6. 嵌入式计算机的发展阶段,嵌入式发展经历了哪四个阶段?
  7. 使用Spring boot,Thymeleaf,AngularJS从零开始构建一个新的Web应用程序-第1部分
  8. Linux基本命令+Makefile
  9. 通过共现矩阵和余弦相似度实现机器对单词的认知、python实现
  10. 数据交互智能终端设想
  11. vsan Linux 网络磁盘,理解vSAN中的磁盘空间占用
  12. POI 读取 Excel 文件(2003版本与2007版本的差异之处)
  13. angular学习疑问总结
  14. mysql 查询多个号段_SQL查询连续号码段的巧妙解法
  15. 离线地图开发 支持 局域网内二次开
  16. 新版手机离线地图GPS定位程序
  17. 3-D Quasi-Recurrent Neural Network for Hyperspectral Image Denoising
  18. 程序员IT认证有用吗?软件工程师考证有必要吗?
  19. point类型的数组java_Java基础学习之引用类型数组访问NullPoint问题
  20. Windows10设置开机自启动文件(或删除)

热门文章

  1. 业余草告诉你甲骨文正式宣布将 Java EE 移交给 Eclipse 基金会
  2. 从k8s集群主节点数量为什么是奇数来聊聊分布式系统
  3. 如何获取两个经纬度点之间的中心点的经纬度
  4. 【老九学堂】【C++】CodeBlocks安装配置
  5. mysql where in and_mysql中 where in 用法详解
  6. 中止执行后超过2年_执行期限过了两年怎么处理
  7. COB制作工艺流程简介
  8. PS套索工具改变头发颜色
  9. 实验室预约管理系统大型仪器预约平台
  10. 【日记 2021-05-14】树莓派获取环境亮度(光照度)