专栏首页深度学习和计算机视觉基于OpenCV实战:车牌检测

基于OpenCV实战:车牌检测

拥有思维导图或流程将引导我们朝着探索和寻找实现目标的正确道路的方向发展。如果要给我一张图片,我们如何找到车牌并提取文字?

一般思维步骤:

  1. 识别输入数据是图像。
  2. 扫描图像以查看由边缘定义的所有不同形状。
  3. 假设车牌是矩形,则在与之前步骤不同的所有形状中,找到与矩形最匹配的形状。
  4. 一旦找到矩形,该形状内的信息即为车牌号。

1、识别输入数据是图像。

为了让Pytho n相应地处理输入数据,我们将导入适当的库。我们将使用OpenCV(cv2)读取图像。另外,我们想使用Imutils将图像大小标准化为512像素(我们选择512像素,因为它是图像大小与图像细节之间的中间点,Imutils库将自动调整其高度以匹配其原始比例)。

阅读图像后,我们将其转换为灰度。转换为灰度不仅可以减少计算复杂性,而且对于查找轮廓(稍后的步骤)也很重要,因为OpenCV可以从黑色背景中的白色连接对象中查找轮廓。

调整大小并转换为灰度后的图像:

2、扫描图像以查看由边缘定义的所有不同形状

当我们查看一个对象时,我们的眼睛会通过其边缘检测到对象的形状,该对象的边缘与其背景,周围或相邻对象有颜色差异。因此,为了使计算机能够勾勒出图像中所有不同的形状,我们需要应用此概念。

这是重要的一步。如果计算机无法勾勒出重要的边缘,则可能无法找到车牌。

我们将OpenCV中的Canny函数应用到预处理后的图像上,以勾勒出其边缘或颜色渐变。

在应用Canny函数之前,我们将首先对图像应用平滑方法以减少噪点。在这里,我们对图像应用了双边滤波方法,以在保持边缘清晰的同时减少噪声。

注意:这2个函数中的参数不是"one-size-fits-all"。需要针对你们的应用程序进行调整。

3.假定车牌是矩形,从与前面步骤不同的所有形状中找出与矩形最匹配的形状

当给人一张带有牌照的图像时,我们的眼睛就能从其他所有形状中找出牌照,因为我们的先验知识告诉我们这是一个矩形的形状,具有四个相连的角。

要将这个想法应用到Python,我们首先将OpenCV findContours函数应用到图4上以查找所有闭合轮廓。然后,为了可视化它们,我们应用了drawContours函数将轮廓绘制到原始图像上。

如图6所示,它具有许多轮廓,其中大多数轮廓形状不正确或没有被认为是矩形的区域。因此,我们将根据其面积对轮廓进行排序,并根据其面积过滤轮廓。最后,我们将再次使用drawContour函数显示过滤后的轮廓。

接下来,找到最适合车牌的形状,即矩形。为此,我们将遍历其余所有轮廓,并应用arcLength和roximatePolyDP函数近似闭合轮廓。找到后,我们将使用boundingRect函数来定位要裁剪的角点。

4.找到矩形后,该形状内的信息将为车牌号。

找到正确的轮廓后,我们需要从该轮廓中提取文本。为此,我们将使用Pytesseract。我们还将需要安装Teseract,并将其与Pytesseract结合使用。

使用“ image_to_string”功能从轮廓提取文本。请注意,“ config”是一个变化的参数,可能需要针对每个应用程序进行更改。

OpenCV和Pytesseract在此项目上是众多方法之一。但是有了路线图,它可以使你们更好地了解要采用的方法,以及需要或者想要的项目有多复杂。

— — 完 — —

本文分享自微信公众号 - 小白学视觉(NoobCV),作者:小白

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2021-05-04

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • android端使用openCV实现车牌检测

    现在,汽车的踪影无处不在,公路上疾驰,大街边临停,小区中停靠,车库里停泊。管理监控如此庞大数量的汽车是个头疼的问题。精明的人们把目光放在车牌上,因为车牌是汽车的...

    砸漏
  • EasyPR--中文车牌识别系统 开发详解(开源)

    朱晓霞
  • EasyPR--中文车牌识别系统 开发详解(开源)

    一个开源的中文车牌识别系统, Git地址为:https://github.com/liuruoze/EasyPR。   我给它取的名字为EasyPR,也就是Ea...

    朱晓霞
  • 毕设有着落了!一套开源的,基于SpringBoot的车牌识别系统

    这个项目是良月柒在逛社区时发现的,刚看到它,思绪直接被拉回了几年前,当初有同学的毕设就是停车场管理系统,关键的功能——车牌识别,连硬件都整上了,一整套流程跑下来...

    良月柒
  • 基于OpenCV的车辆变道检测

    本期教程我们将和小伙伴们一起研究如何使用计算机视觉和图像处理技术来检测汽车在行驶中时汽车是否在改变车道!大家一定听说过使用OpenCV 的haar级联文件可以检...

    小白学视觉
  • 基于OpenCV的车辆变道检测

    本期教程我们将和小伙伴们一起研究如何使用计算机视觉和图像处理技术来检测汽车在行驶中时汽车是否在改变车道!大家一定听说过使用OpenCV 的haar级联文件可以检...

    AI算法与图像处理
  • 基于OpenCV 的车牌识别

    车牌识别是一种图像处理技术,用于识别不同车辆。这项技术被广泛用于各种安全检测中。现在让我一起基于OpenCV编写Python代码来完成这一任务。

    小白学视觉
  • Spring Boot+Maven实现车牌训练、识别系统

    之前为各位朋友分享过Python+OpenCV实现车牌检测与识别,本篇博文为各位分享Spring Boot+Maven实现车牌训练、识别系统。

    不脱发的程序猿
  • 围观!一套开源车牌识别系统(附项目地址)

    liuruoze/EasyPR:https://gitee.com/easypr/EasyPR

    全栈程序员站长
  • 基于SpringBoot的车牌识别系统(附项目地址)

    Java团长
  • 基于 Spring Boot 的车牌识别系统(附项目地址)ba

    嘿嘿,胖友给艿艿的 https://github.com/YunaiV/SpringBoot-Labs 仓库点个 Star 吧,具体 100000 只差 400...

    芋道源码
  • 基于SpringBoot的车牌识别系统(附项目地址)

    java进阶架构师
  • 围观!一套开源的,基于SpringBoot的车牌识别系统(附项目地址)

    架构师修炼
  • 多模态深度学习:用深度学习的方式融合各种信息

    我们对世界的体验是多模态的 —— 我们看到物体,听到声音,感觉到质地,闻到气味,尝到味道。模态是指某件事发生或经历的方式,当一个研究问题包含多个模态时,它就具有...

    小白学视觉
  • 【GCN】图卷积网络 Graph Convolutional Networks

    上面左图是2D卷积神经网络,其输入是4行4列的矩阵,通过卷积核逐步移动实现对整个输入的卷积操作;而右图输入是图网络,其结构和连接是不规则的,无法像卷积神经网络那...

    小白学视觉
  • YOLOV3实现车牌检测

    计算机视觉无处不在-从面部识别,制造,农业到自动驾驶汽车。今天,我们将通过动手实践进入现代计算机视觉世界,学习如何使用YOLO算法检测车牌。

    AI算法与图像处理
  • 重磅!英特尔开源了OpenVINO模型训练框架

    OpenVINO提供了大量的预训练模型,对车牌、车辆检测SSD模型,车辆属性识别、车牌识别模型、人脸检测、表情识别等模型,都提供模型重新训练与部署的扩展通道,通...

    OpenCV学堂
  • 项目经验不重样!3个基于 SpringBoot 的图片识别处理系统送给你!

    最近看了太多读者小伙伴的简历,发现各种商城/秒杀系统/在线教育系统真的是挺多的。推荐一下昨晚找的几个还不错的基于 Java 的图片识别处理系统。

    Guide哥
  • Qt+opencv+EasyPR(车牌识别系统,从配置环境到成功运行)

    最近在东软睿道实训搞一个车牌识别系统,所用材料为Qt+opencv+EasyPR,从配环境到成功运行历时几天颇为艰难,这里写篇经验贴,手把手教你~ 作者:张俊怡...

    张俊怡

扫码关注云+社区

领取腾讯云代金券