停车场管收费理系统python_Python-车牌识别
一.车牌识别系统的用途与技术
该车牌识别系统(VLPR)主要应用于计算机视频图像识别技术在车辆牌照自动识别中的功能实现。其在高速公路车辆管理系统中的应用日益广泛,并且同样,在电子收费(ETC)系统中也常与DSRC技术协同工作以实现车辆身份的有效认证。
该系统具备从复杂背景中准确提取和辨识移动中的车辆车牌的能力,并通过包括车牌信息采集、图像预处理环节、特征分析步骤以及字符辨识阶段在内的多项关键技术实现对车辆号码及外观特征的数据获取。当前技术水平下,在字母与数字上的准确率达到99.7%,汉字的准确率达到99%。
在停车场管理领域中,车牌识别技术被视为识别车辆身份的重要手段。而在深圳市公安局规划的停车库(场)相关规范和技术要求文档中,《停车库(场)车辆图像和号牌信息采集与传输系统》成为实施车辆身份识别的关键技术。
基于车牌识别技术与电子不停车收费系统的整合,在路口通行时可省去临时停车步骤(即实现来往车辆的身份自动识别及费用自动结算)。在停车场管理领域内(为了提升停车场出入口处的整体通行效率),车牌识别系统将专门针对无需支付费用的车辆(例如月卡类及内部免费通行车型),搭建无人值守的快速专用通道(从而减少人员介入),并提供"免取卡、零等待"出入体验(正在重塑传统的停车场管理模式)。
二.运用Python代码完成车牌识别
1.将给定车牌圈出,并保存在文件夹中。
2.将车牌中的数字和文字圈出、并保存在文件夹中。
思路分析:
对图片进行一些预处理步骤,在这些步骤中主要包含以下几点:首先将图片转换为灰度图像;接着应用高斯滤波器以减少噪声污染;随后执行中值滤波算法以进一步平滑图像细节;最后使用Sobel算子来进行边缘检测运算。
通过预处理后的图像进行边缘检测,在此基础上分析其特征以识别该边缘是否属于车牌区域
import cv2
import numpy as np
image = cv2.imread('C:\ Users\ sunyu\ Desktop\ sy.jpg')
cv2.imshow("image", image)
hsv_img = cv2.cvtColor(image, cv2.COLOR_BGR2HSV)
lower = np.array([110, 100, 150])
upper = np.array([125, 200, 255])
mask = cv2.inRange(hsv_img, lowerb=lower, upperb=upper)
kernel = np.ones((5,5), np.uint8)
mask = cv2.dilate(mask, kernel, iterations=10)
cv2.imshow("mask", mask)
使用OpenCV库中的findContours函数提取外边界轮廓及其层次结构,并基于掩模进行操作
#cv2.waitKey(0)
for c in contours:
find bounding box coordinates
现计算出一个简单的边界框
x, y, w, h = cv2.boundingRect(c) # 提取目标区域的坐标位置,并计算其宽度和高度参数
if w < 2*h:
continue
#cv2.imwrite('con'+str(index)+'.jpg', result[y:y+h, x:x+w])
cv2.rectangle(image, (x, y), (x+w, y+h), (0, 255, 0), 2) # 画出矩形
new = image[y:y+h, x:x+w]
gray = cv2.cvtColor(new.copy(), cv2.COLOR_BGR2GRAY) # 灰度图
ret, thresh = cv2.threshold(gray, 160, 255, cv2.THRESH_BINARY) # 阈值分割
contours, hier = cv2.findContours(thresh, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
index = 0
for c in contours:
find bounding box coordinates
现计算出一个简单的边界框
x, y, w, h = cv2.boundingRect(c) # 将轮廓信息生成为(x, y)坐标位置,并计算出矩形的高度与宽度
if w > 40:
continue
index = index+1
cv2.rectangle(new, (x, y), (x+w, y+h), (0, 255, 0), 2) # 画出矩形
cv2.imwrite('C:\ Users\ sunyu\ Desktop\ pi\ s' + str(index)+'.jpg',new)
cv2.imshow('new', new)
cv2.imwrite('C:\ Users\ sunyu\ Desktop\ pi\ s.jpg',new)
cv2.waitKey(0)
本代码中的图片路径根据读者情况随机应变。
三.结果展示
以上就是车牌识别代码,愿有所帮助,
不是为了优秀而优秀,不需要被别人定义,因为我有my logo。
