python实现车牌识别的示例代码


Posted in Python onAugust 05, 2019

某天回家之时,听到有个朋友说起他正在做一个车牌识别的项目

于是对其定位车牌的位置算法颇有兴趣,今日有空得以研究,事实上车牌识别算是比较成熟的技术了,

这里我只是简单实现。

我的思路为:

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

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

效果如下:

test1:

python实现车牌识别的示例代码

python实现车牌识别的示例代码

test2

python实现车牌识别的示例代码

python实现车牌识别的示例代码

实现代码如下(对图像预处理(滤波器等)的原理比较简单,这里只是对一些函数进行调包):

import cv2
import numpy as np
 
 
# 形态学处理
def Process(img):
	# 高斯平滑
	gaussian = cv2.GaussianBlur(img, (3, 3), 0, 0, cv2.BORDER_DEFAULT)
	# 中值滤波
	median = cv2.medianBlur(gaussian, 5)
	# Sobel算子
	# 梯度方向: x
	sobel = cv2.Sobel(median, cv2.CV_8U, 1, 0, ksize=3)
	# 二值化
	ret, binary = cv2.threshold(sobel, 170, 255, cv2.THRESH_BINARY)
	# 核函数
	element1 = cv2.getStructuringElement(cv2.MORPH_RECT, (9, 1))
	element2 = cv2.getStructuringElement(cv2.MORPH_RECT, (9, 7))
	# 膨胀
	dilation = cv2.dilate(binary, element2, iterations=1)
	# 腐蚀
	erosion = cv2.erode(dilation, element1, iterations=1)
	# 膨胀
	dilation2 = cv2.dilate(erosion, element2, iterations=3)
	return dilation2
 
 
def GetRegion(img):
	regions = []
	# 查找轮廓
	_, contours, hierarchy = cv2.findContours(img, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)
	for contour in contours:
		area = cv2.contourArea(contour)
		if (area < 2000):
			continue
		eps = 1e-3 * cv2.arcLength(contour, True)
		approx = cv2.approxPolyDP(contour, eps, True)
		rect = cv2.minAreaRect(contour)
		box = cv2.boxPoints(rect)
		box = np.int0(box)
		height = abs(box[0][1] - box[2][1])
		width = abs(box[0][0] - box[2][0])
		ratio =float(width) / float(height)
		if (ratio < 5 and ratio > 1.8):
			regions.append(box)
	return regions
 
 
def detect(img):
	# 灰度化
	gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
	prc = Process(gray)
	regions = GetRegion(prc)
	print('[INFO]:Detect %d license plates' % len(regions))
	for box in regions:
		cv2.drawContours(img, [box], 0, (0, 255, 0), 2)
	cv2.imshow('Result', img)
  #保存结果文件名
	cv2.imwrite('result2.jpg', img)
	cv2.waitKey(0)
	cv2.destroyAllWindows()
 
 
if __name__ == '__main__':
  #输入的参数为图片的路径
	img = cv2.imread('test2.jpg')
	detect(img)

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python循环语句中else的用法总结
Sep 11 Python
解决python大批量读写.doc文件的问题
May 08 Python
tensorflow实现简单逻辑回归
Sep 07 Python
python修改txt文件中的某一项方法
Dec 29 Python
python 控制Asterisk AMI接口外呼电话的例子
Aug 08 Python
如何在VSCode上轻松舒适的配置Python的方法步骤
Oct 28 Python
tensorflow指定GPU与动态分配GPU memory设置
Feb 03 Python
python正则过滤字母、中文、数字及特殊字符方法详解
Feb 11 Python
python对XML文件的操作实现代码
Mar 27 Python
python实现简单学生信息管理系统
Apr 09 Python
在Python中使用K-Means聚类和PCA主成分分析进行图像压缩
Apr 10 Python
Python中npy和mat文件的保存与读取
Apr 24 Python
使用python实现滑动验证码功能
Aug 05 #Python
Django 源码WSGI剖析过程详解
Aug 05 #Python
Python使用itchat 功能分析微信好友性别和位置
Aug 05 #Python
Python队列RabbitMQ 使用方法实例记录
Aug 05 #Python
Python 通过微信控制实现app定位发送到个人服务器再转发微信服务器接收位置信息
Aug 05 #Python
基于python框架Scrapy爬取自己的博客内容过程详解
Aug 05 #Python
基于python实现的百度音乐下载器python pyqt改进版(附代码)
Aug 05 #Python
You might like
SMARTY学习手记
2007/01/04 PHP
ThinkPHP框架任意代码执行漏洞的利用及其修复方法
2014/07/04 PHP
Javascript 文件夹选择框的两种解决方案
2009/07/01 Javascript
javascript每日必学之循环
2016/02/19 Javascript
Jquery揭秘系列:ajax原生js实现详解(推荐)
2016/06/08 Javascript
js print打印网页指定区域内容的简单实例
2016/11/01 Javascript
form表单数据封装成json格式并提交给服务器的实现方法
2017/12/14 Javascript
Vue异步组件处理路由组件加载状态的解决方案
2018/09/07 Javascript
在Vue中使用axios请求拦截的实现方法
2018/10/25 Javascript
Javascript数组方法reduce的妙用之处分享
2019/06/10 Javascript
vue实现全匹配搜索列表内容
2019/09/26 Javascript
vue搜索页开发实例代码详解(热门搜索,历史搜索,淘宝接口演示)
2020/04/11 Javascript
基于vue3.0.1beta搭建仿京东的电商H5项目
2020/05/06 Javascript
vue Cli 环境删除与重装教程 - 版本文档
2020/09/11 Javascript
解决vue-loader加载不上的问题
2020/10/21 Javascript
Python使用random和tertools模块解一些经典概率问题
2015/01/28 Python
matlab中实现矩阵删除一行或一列的方法
2018/04/04 Python
对python中的for循环和range内置函数详解
2018/04/17 Python
python_opencv用线段画封闭矩形的实例
2018/12/05 Python
利用python实现在微信群刷屏的方法
2019/02/21 Python
Python增强赋值和共享引用注意事项小结
2019/05/28 Python
对PyQt5中的菜单栏和工具栏实例详解
2019/06/20 Python
python计算二维矩形IOU实例
2020/01/18 Python
Django 解决distinct无法去除重复数据的问题
2020/05/20 Python
详解Django中的FBV和CBV对比分析
2021/03/01 Python
英国家喻户晓的折扣商场:TK Maxx
2017/05/26 全球购物
英国最大的美妆产品在线零售商之一:Beauty Bay
2017/09/29 全球购物
LivingSocial英国:英国本地优惠
2019/02/22 全球购物
珠宝店促销方案
2014/03/21 职场文书
求职自荐信的格式
2014/04/07 职场文书
《风娃娃》教学反思
2014/04/19 职场文书
布达拉宫的导游词
2015/02/02 职场文书
广告业务员岗位职责
2015/02/13 职场文书
公司开除员工通知
2015/04/22 职场文书
2015年安全生产管理工作总结
2015/05/25 职场文书
清明节随笔
2015/08/15 职场文书