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下函数参数的传递(参数带星号的说明)
Sep 19 Python
haskell实现多线程服务器实例代码
Nov 26 Python
Python批量修改文件后缀的方法
Jan 26 Python
Python实现的多进程和多线程功能示例
May 29 Python
python计算列表内各元素的个数实例
Jun 29 Python
python去重,一个由dict组成的list的去重示例
Jan 21 Python
Django多数据库的实现过程详解
Aug 01 Python
python操作openpyxl导出Excel 设置单元格格式及合并处理代码实例
Aug 27 Python
Python将列表中的元素转化为数字并排序的示例
Dec 25 Python
Python SSL证书验证问题解决方案
Jan 13 Python
python实现简单反弹球游戏
Apr 12 Python
聊聊Python String型列表求最值的问题
Jan 18 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
《一拳超人》埼玉一拳下去,他们存在了800年毫无意义!
2020/03/02 日漫
法压式咖啡之制作法
2021/03/03 冲泡冲煮
PHP网站提速三大“软”招
2006/10/09 PHP
一些常用的php函数
2006/12/06 PHP
Win2003服务器安全加固设置--进一步提高服务器安全性
2007/05/23 PHP
php二分法在IP地址查询中的应用
2008/08/12 PHP
php多用户读写文件冲突的解决办法
2013/11/06 PHP
Javascript valueOf 使用方法
2008/12/28 Javascript
11款基于Javascript的文件管理器
2009/10/25 Javascript
jQuery学习4 浏览器的事件模型
2010/02/07 Javascript
一个CSS+jQuery实现的放大缩小动画效果
2014/02/19 Javascript
jQuery中[attribute*=value]选择器用法实例
2014/12/31 Javascript
判断浏览器的内核及版本号方法汇总
2015/01/05 Javascript
jQuery仿Flash上下翻动的中英文导航菜单实例
2015/03/10 Javascript
jQuery实现Div拖动+键盘控制综合效果的方法
2015/03/10 Javascript
jQuery验证插件validation使用指南
2015/04/21 Javascript
JavaScript使用ZeroClipboard操作剪切板
2017/05/10 Javascript
Node.Js生成比特币地址代码解析
2018/04/21 Javascript
Python实现爬取知乎神回复简单爬虫代码分享
2015/01/04 Python
简单介绍Python下自己编写web框架的一些要点
2015/04/29 Python
基于Python中capitalize()与title()的区别详解
2017/12/09 Python
解决安装tensorflow遇到无法卸载numpy 1.8.0rc1的问题
2018/06/13 Python
Django网络框架之HelloDjango项目创建教程
2019/06/06 Python
Python从列表推导到zip()函数的5种技巧总结
2019/10/23 Python
jupyter notebook tensorflow打印device信息实例
2020/04/20 Python
Java ExcutorService优雅关闭方式解析
2020/05/30 Python
什么是GWT的Module
2013/01/20 面试题
应届毕业生自我鉴定范文
2013/12/27 职场文书
20年同学聚会邀请函
2014/02/04 职场文书
加入学生会演讲稿
2014/04/24 职场文书
工地质量标语
2014/06/12 职场文书
党员评议表自我评价范文
2014/10/20 职场文书
免职证明样本
2014/10/23 职场文书
健康证明
2015/06/19 职场文书
2016中秋节广告语
2016/01/28 职场文书
该怎么书写道歉信?
2019/07/03 职场文书