Python-车牌识别

一.车牌识别系统的用途与技术

车牌识别系统(Vehicle License Plate Recognition,VLPR) 是计算机视频图像识别技术在车辆牌照识别中的一种应用。车牌识别在高速公路车辆管理中得到广泛应用,电子收费(ETC)系统中,也是结合DSRC技术识别车辆身份的主要手段。

车牌识别技术要求能够将运动中的汽车牌照从复杂背景中提取并识别出来,通过车牌提取、图像预处理、特征提取、车牌字符识别等技术,识别车辆牌号、颜色等信息,目前最新的技术水平为字母和数字的识别率可达到99.7%,汉字的识别率可达到99%。

在停车场管理中,车牌识别技术也是识别车辆身份的主要手段。在深圳市公安局建设的《停车库(场)车辆图像和号牌信息采集与传输系统技术要求》中,车牌识别技术成为车辆身份识别的主要手段。

车牌识别技术结合电子不停车收费系统(ETC)识别车辆,过往车辆通过道口时无须停车,即能够实现车辆身份自动识别、自动收费。在车场管理中,为提高出入口车辆通行效率,车牌识别针对无需收停车费的车辆(如月卡车、内部免费通行车辆),建设无人值守的快速通道,免取卡、不停车的出入体验,正改变出入停车场的管理模式。

二.运用Python代码完成车牌识别

1.将给定车牌圈出,并保存在文件夹中
2.将车牌中的数字和文字圈出、并保存在文件夹中

思路分析:
对图片进行一些预处理,包括灰度化、高斯平滑、中值滤波、Sobel算子边缘检测等等。

对预处理后的图像进行轮廓查找,然后根据一些RGB参数判断该轮廓是否为车牌轮廓。

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)
contours, hier = cv2.findContours(mask, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
#cv2.waitKey(0) 
for c in contours:
    # find bounding box coordinates
    # 现计算出一个简单的边界框
    x, y, w, h = cv2.boundingRect(c)   # 将轮廓信息转换成(x, y)坐标,并加上矩形的高度和宽度
    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。

2019.12.06
22时50分

  • 4
    点赞
  • 80
    收藏
    觉得还不错? 一键收藏
  • 10
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值