基于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在此项目上是众多方法之一。但是有了路线图,它可以使你们更好地了解要采用的方法,以及需要或者想要的项目有多复杂。

— — 完 — —

下载1:OpenCV-Contrib扩展模块中文版教程
(0)

相关推荐

  • OpenCV矩形检测

    矩形检测有什么用? 一个非常熟悉的例子是 拍摄的文本的预处理. 将文档定位出矩形,然后透视变换校正,方便后续的OCR. 虽然矩形检测看起来不难,好像是只要定位到四条边判断两两直线夹角就好了,但要做好也 ...

  • Opencv中rectangle函数与Rect函数的用法

    rectangle函数是用来绘制一个矩形框的,通常用在图片的标记上. 1.rectangle(img2, Point(j,i), Point(j + img4.cols, i + img4.rows) ...

  • OpenCV基础知识入门

    本文旨在让你快速入门opencv. OpenCV OpenCV是计算机视觉中最受欢迎的库,最初由intel使用C和C ++进行开发的,现在也可以在python中使用.该库是一个跨平台的开源库,是免费使 ...

  • 基于OpenCV实战:动态物体检测

    重磅干货,第一时间送达 最近,闭路电视安全系统运行着多种算法来确保安全,例如面部识别,物体检测,盗窃检测,火灾警报等.我们在运动检测的基础上实现了许多算法,因为在空闲帧上运行所有这些进程没有任何意义. ...

  • 实战:基于OpenCV 的车牌识别

    重磅干货,第一时间送达 车牌识别是一种图像处理技术,用于识别不同车辆.这项技术被广泛用于各种安全检测中.现在让我一起基于OpenCV编写Python代码来完成这一任务. 车牌识别的相关步骤 1.车牌检 ...

  • 实战:基于OpenCV的人眼检测

    重磅干货,第一时间送达 一.背景 无论学习什么,实践都非常重要.如果打算学习OpenCV.Numpy等Python库,那么这简单的12行代码很适合实践并体验这些库的实时使用. 二.OpenCV库 Op ...

  • 基于OpenCV实战的图像处理:色度分割

    重磅干货,第一时间送达 通过HSV色阶使用彩色图像可以分割来分割图像中的对象,但这并不是分割图像的唯一方法.为什么大多数人偏爱色度而不是RGB / HSV分割? 可以获得RGB / HSV通道之间的比 ...

  • 基于OpenCV实战:绘制图像轮廓(附代码)

    重磅干货,第一时间送达 山区和地形图中海拔高的区域划出的线称为地形轮廓,它们提供了地形的高程图.这些线条可以手动绘制,也可以由计算机生成.在本文中,我们将看到如何使用OpenCV在简单图像上绘制轮廓线 ...

  • 基于OpenCV实战:对象跟踪

    重磅干货,第一时间送达 介绍 跟踪对象的基本思想是找到对象的轮廓,基于HSV颜色值. 轮廓:突出显示对象的图像片段.例如,如果将二进制阈值应用于具有(180,255)的图像,则大于180的像素将以白色 ...

  • 基于opencv的车牌识别解析

    车牌识别太出名了,花几天来了解下这个系统,并结合opencv进行实现.下面是一些介绍: 车辆牌照识别(License Plate Recognition,LPR)技术作为交通管理自动化的重要手段和车辆 ...

  • 基于OpenCV的手掌检测和手指计数

    重磅干货,第一时间送达 利用余弦定理使用OpenCV-Python实现手指计数与手掌检测. 手检测和手指计数 接下来让我们一起探索以下这个功能是如何实现的. OpenCV OpenCV(开源计算机视觉 ...

  • 基于OpenCV 的车牌识别

    重磅干货,第一时间送达 车牌识别是一种图像处理技术,用于识别不同车辆.这项技术被广泛用于各种安全检测中.现在让我一起基于OpenCV编写Python代码来完成这一任务. 车牌识别的相关步骤 1.车牌检 ...