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抓取百度首页的方法
May 19 Python
Python基于sftp及rsa密匙实现远程拷贝文件的方法
Sep 21 Python
CentOS6.5设置Django开发环境
Oct 13 Python
Python爬取网易云音乐热门评论
Mar 31 Python
Python编程使用NLTK进行自然语言处理详解
Nov 16 Python
python 通过字符串调用对象属性或方法的实例讲解
Apr 21 Python
Python查找文件中包含中文的行方法
Dec 19 Python
Appium Python自动化测试之环境搭建的步骤
Jan 23 Python
一篇文章弄懂Python中的可迭代对象、迭代器和生成器
Aug 12 Python
Python常用数据类型之间的转换总结
Sep 06 Python
python 矢量数据转栅格数据代码实例
Sep 30 Python
Anaconda安装pytorch及配置PyCharm 2021环境
Jun 04 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
修改了一个很不错的php验证码(支持中文)
2007/02/14 PHP
在PHP中使用模板的方法
2008/05/24 PHP
php学习笔记之 函数声明
2011/06/09 PHP
php排序算法实例分析
2016/10/17 PHP
js二级地域选择的实现方法
2013/06/17 Javascript
JavaScript中this的使用详解
2013/11/08 Javascript
使用纯javascript实现经典扫雷游戏
2015/04/23 Javascript
Jquery实现select multiple左右添加和删除功能的简单实例
2016/05/26 Javascript
JavaScript关于提高网站性能的几点建议(一)
2016/07/24 Javascript
EditPlus中的正则表达式 实战(4)
2016/12/15 Javascript
最常见和最有用的字符串相关的方法详解
2017/02/06 Javascript
详解vue项目优化之按需加载组件-使用webpack require.ensure
2017/06/13 Javascript
使用jquery+iframe做一个ajax上传效果(实例)
2017/08/24 jQuery
React组件对子组件children进行加强的方法
2019/06/23 Javascript
[53:20]2018DOTA2亚洲邀请赛 4.1 小组赛 A组加赛 VG vs OG
2018/04/03 DOTA
对python .txt文件读取及数据处理方法总结
2018/04/23 Python
python中使用psutil查看内存占用的情况
2018/06/11 Python
python3+django2开发一个简单的人员管理系统过程详解
2019/07/23 Python
python3实现raspberry pi(树莓派)4驱小车控制程序
2020/02/12 Python
Python pip安装模块提示错误解决方案
2020/05/22 Python
Shopee菲律宾:在线购买和出售
2019/11/25 全球购物
查询优化的一般准则有哪些
2015/03/08 面试题
利用promise及参数解构封装ajax请求的方法
2021/03/24 Javascript
2014年医学生毕业自我鉴定
2014/03/26 职场文书
"9.18"国耻日演讲稿范文
2014/09/14 职场文书
详细的本科生职业生涯规划范文
2014/09/16 职场文书
区长工作作风个人整改措施
2014/10/01 职场文书
学校总务处领导干部个人对照检查材料思想汇报
2014/10/06 职场文书
2015年党风廉政承诺书
2015/01/22 职场文书
司机岗位职责
2015/02/04 职场文书
思想道德自我评价2015
2015/03/09 职场文书
学校运动会加油词
2015/07/18 职场文书
环境卫生整治简报
2015/07/20 职场文书
导游词之湖北梁子湖
2019/11/07 职场文书
CKAD认证中部署k8s并配置Calico插件
2022/03/31 Servers
一文搞懂PHP中的抽象类和接口
2022/05/25 PHP