毕业设计 python opencv实现车牌识别 预处理

摘要:
无论文件名=askopenfilename(title=“选择识别图片”,“*.png”)]defing_read(文件名):pic_width=img.shape[:resize_rate=MAX_width/pic_widthimg=cv2.resize(img,int(pic_hight*resize_rate)),

主要代码参考https://blog.csdn.net/wzh191920/article/details/79589506

GitHub:https://github.com/yinghualuowu

首先我们需要一个函数可以随时获取图片,无论在什么地方

filename = askopenfilename(title="选择识别图片", filetypes=[("jpg图片", "*.jpg"),("png图片","*.png")])
def img_read(filename):
    return  cv2.imdecode(np.fromfile(filename, dtype=np.uint8), cv2.IMREAD_COLOR)

毕业设计 python opencv实现车牌识别 预处理第1张

另外我们需要考虑图片大小

pic_hight,pic_width = img.shape[:2]
if pic_width > MAX_WIDTH:
resize_rate = MAX_WIDTH / pic_width
img = cv2.resize(img, (MAX_WIDTH, int(pic_hight * resize_rate)), interpolation=cv2.INTER_AREA)
#缩小图片

进行形态学操作,以下步骤并不是必选项,根据方法来选取一些预处理步骤

blur = 3
img = cv2.GaussianBlur(img,(blur,blur),0)
oldimg = img
img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
#转化成灰度图像

Matrix = np.ones((20, 20), np.uint8)
img_opening = cv2.morphologyEx(img, cv2.MORPH_OPEN, Matrix)
img_opening = cv2.addWeighted(img, 1, img_opening, -1, 0)
#创建20*20的元素为1的矩阵 开操作,并和img重合

ret, img_thresh = cv2.threshold(img_opening, 0, 255, cv2.THRESH_BINARY + cv2.THRESH_OTSU)
img_edge = cv2.Canny(img_thresh, 100, 200)
#Otsu’s二值化 找到图像边缘

Matrix = np.ones((4, 19), np.uint8)
img_edge1 = cv2.morphologyEx(img_edge, cv2.MORPH_CLOSE, Matrix)
img_edge2 = cv2.morphologyEx(img_edge1, cv2.MORPH_OPEN, Matrix)

比如下面这张进行预处理后,就变成

毕业设计 python opencv实现车牌识别 预处理第2张毕业设计 python opencv实现车牌识别 预处理第3张

 

 

免责声明:文章转载自《毕业设计 python opencv实现车牌识别 预处理》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇安卓模拟器[IOS微信] Unicode码 转化为字符串下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

bootstrap 导航栏、输入框按钮组、栅格系统

栅格系统 文档地址:http://v3.bootcss.com/css/#grid 栅格系统的强大之处在于灵活的处理不同分辨率下的页面布局,对于我这种理科思维并且是前端弱鸡的人来说,优点在于可预见、可控,同时最大限度的减少了页面布局过程中的代码量,实乃神器。 举例说明: <div class="container-fluid">...

WPF DataContext与Binding的关系

在前台UI创建一个Label绑定到myLabel <Window x:Class="WpfApp1.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsof...

php imagemagick 处理 图片剪切、压缩、合并、插入文本、背景色透明

php有一款插件叫做imagemagick,功能很强大,提供了图片的很多操作,图片剪切、压缩、合并、插入文本、背景色透明等。并且有api方法调用和命令行操作两种方式,如果只是简单处理的话建议api方法调用,如果是很复杂的操作建议服务器端搭shell命令行操作,因为api方法调用同操作对比命令行他更吃内存,并且效率没有命令行那么高。 本文章就对于这些常见操作...

kestrel Server的源码分析

今天这一篇博客讲的是.net core 自带的kestrel server,当你开发微服务k8s部署在linux环境下,一般默认开启这个高性能服务,如果大家之前看过我的owin katana的博客,会发现.net core 的好多实现在之前.net standard 的版本已经实现过了,当时开发的asp.net 程序与IIS紧紧耦合在一起,后来的微软团队意...

原创-PromQL语法

匹配标签值时可以是等于,也可以使用正则表达式。总共有下面几种匹配操作符: =:完全相等 !=: 不相等 =~: 正则表达式匹配 !~: 正则表达式不匹配 Prometheus的4种数据类型如下。·瞬时向量(Instant vector):一组时间序列,每个时间序列包含单个样本,它们共享相同的时间戳。也就是说,表达式的返回值中只会包含该时间序列中最新的一...

js瀑布流 原理实现揭秘 javascript 原生实现

  web,js瀑布流揭秘   瀑布流再很久之前流行,可能如我一样入行晚的 ,可能就没有机会去使用。但是这个技术终究是个挺炫酷的东西,花了一个上午来研究,用原生js实现了一个,下面会附上源码,供大家解读。   说起瀑布流,其实实现原理特别简单,而且方法有很多,现在说一个大众的方法,所谓瀑布流就是 一堆样式差不多的 盒子排列在一起,排列规则是,插入到高度最低...