HyperLPR车牌识别库代码分析(9)
2021SC@SDUSC
源代码下载地址:https://gitee.com/zeusees/HyperLPR
源码配置的详情见第一篇分析
本篇内容将总结之前所分析的SimpleRecognizePlateByE2E()函数:
一、源码
def SimpleRecognizePlateByE2E(image):t0 = time.time()images = detect.detectPlateRough(image,image.shape[0],top_bottom_padding_rate=0.1)res_set = []for j,plate in enumerate(images):plate, rect, origin_plate =plateplate =cv2.resize(plate,(136,36*2))res,confidence = e2e.recognizeOne(origin_plate)print "res",rest1 = time.time()ptype = td.SimplePredict(plate)if ptype>0 and ptype<5:plate = cv2.bitwise_not(plate)image_rgb = fm.findContoursAndDrawBoundingBox(plate)image_rgb = fv.finemappingVertical(image_rgb)image_rgb = fv.finemappingVertical(image_rgb)cache.verticalMappingToFolder(image_rgb)res,confidence = e2e.recognizeOne(image_rgb)print res,confidenceres_set.append([[],res,confidence])if confidence>0.7:image = drawRectBox(image, rect, res+" "+str(round(confidence,3)))return image,res_set
二、总结
image.shape[]数组含义如下:
image.shape[0], 图片垂直尺寸
image.shape[1], 图片水平尺寸
image.shape[2], 图片通道数
函数功能总结:
首先获得当前系统时间。随后对图片进行粗定位,将图片转为黑白的照片,并通过cv2中的detectMultiScale识别车牌位置,最后粗略地裁剪图片到车牌位置。
在for循环中,先将图片复制三份保存用于后续处理,对plate中的图片进行指定大小裁剪,对origin_plate进行recognizeOne操作,随后将返回值res输出,之后也并未用到res和该confidence。
再次获取系统时间后,SimplePredict()先对图片进行裁剪操作,再用astype进行强制类型转换防止溢出。针对这些图片进行预测,然后返回图像的维度的最大值。当该值位于0~5之间时,对图像(灰度图像或彩色图像均可)每个像素值进行二进制“非”操作,~1=0,~0=1。
接下来对图片进行精定位,使用findContoursAndDrawBoundingBox(...)将车牌具体位置进行定位,定位后如下:
随后进行两次finemappingVertical()操作再对图片进行进一步的裁剪,将各个文字的左右边界裁剪下来,识别出文字。
随后将图片进行utf-8加密后保存。再对已精定位处理过后的图片进行识别,得出车牌号码,插入数组尾部,再对下一张照片进行上述操作获得车牌。
最后当处理好的文件可信度大于0.7时,将对一开始输入进行识别的图片中,框出识别出的车牌并显示车牌号码。drawRectBox函数用于打上boundingbox和标签(为之前函数生成的车牌号码)。
HyperLPR车牌识别库代码分析(9)相关推荐
- HyperLPR车牌识别库代码分析(1)
2021SC@SDUSC 源代码下载地址:https://gitee.com/zeusees/HyperLPR 本项目为山东大学19级软件工程专业软件工程应用与实践课题,我们小组负责该项目的源代码中关 ...
- HyperLPR车牌识别库代码分析(6)
2021SC@SDUSC 源代码下载地址:https://gitee.com/zeusees/HyperLPR 源码配置的详情见第一篇分析 本篇内容将继续根据小组分配的任务进行分析,内容如下: 一.f ...
- HyperLPR车牌识别库代码分析(12)
2021SC@SDUSC 源代码下载地址:https://gitee.com/zeusees/HyperLPR 源码配置的详情见第一篇分析 本篇内容将总结之前所分析的SimpleRecognizePl ...
- HyperLPR车牌识别库代码分析总结(15)
2021SC@SDUSC 源代码下载地址:https://gitee.com/zeusees/HyperLPR 源码配置的详情见第一篇分析 本篇内容将总结之前所分析的三个函数: 一.SimpleRec ...
- Mobile-LPR——面向移动端的准商业级车牌识别库
今天发现一个很棒的车牌识别项目,精度高.代码高度优化.方便使用,感谢开发者xiangweizeng!欢迎大家参考- 项目地址: https://github.com/xiangweizeng/mobi ...
- HyperLPR车牌识别技术算法之车牌精定位
关于HyperLPR HyperLPR是一个使用深度学习针对对中文车牌识别的实现,与较为流行的开源的EasyPR相比,它的检测速度和鲁棒性和多场景的适应性都要好于目前开源的EasyPR,HyperLP ...
- 最新优秀开源:车牌识别、车型分析、车流统计、违停检测统统行
停车场闸机的车牌识别.道路两侧的违停检测.繁华路口的车流统计.茫茫车海中的车辆锁定-这些场景背后的技术原理大家是否在心中简单构思过?抑或想要抽时间自己攒一套出来可却又不知从何下手?--PP-Vehic ...
- HyperLPR车牌识别技术算法之车牌粗定位与训练
关于HyperLPR HyperLPR是一个使用深度学习针对对中文车牌识别的实现,与较为流行的开源的EasyPR相比,它的检测速度和鲁棒性和多场景的适应性都要好于目前开源的EasyPR,HyperLP ...
- pp-vehicle车牌识别检测代码
车牌识别实例化 1.在官网拉取最新代码,并创建检测py文件,并引入相应的库 import os,cv2,time import numpy as np import argparse from dep ...
最新文章
- java字符编码问题_java 字符编码问题
- 穿迷宫、搭积木、现场编程 看看孩子们的机器人“大战”
- 汽车线束测试软件,Aigtek线束测试仪,汽车线束测试_高精度自动测试_操作简单...
- 【学习笔记】5、Python基础语法
- 【转载】单片机的背后
- C#调用python文件
- php实现报表的分组统计sql,实现报表的分组统计,其操作区域是。
- HDU - 5769 Substring(后缀数组)
- 也谈莫言荣获诺贝尔文学奖后我的“低调”
- 模块的封装性分析-读书笔记
- 基于JAVA+Servlet+JSP+MYSQL的高校后勤管理系统
- 向mysql中添加更新时间_mysql 实现添加时间自动添加更新时间自动更新操作
- windows下linux下socket编程区别
- .net获取当前网址url
- 小艾机器人apk_小艾QQ群机器人安卓版
- premiere学习笔记01帧定格,时间码,透明视频,调整图层,转场及批量转场,插件安装,音频调整,关键帧,马赛克,蒙版,嵌套序列
- ibm的odm使用_使用IBM ODM API生成规则工件
- 计算机三维艺术设计基础,计算机艺术设计基础(修订版)
- (附源码)ssmJavaEE无人机数据管理系统 毕业设计 111022
- 400万像素摄像头,你还在用百兆交换机吗?