打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
基于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扩展模块中文版教程
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
从零使用OpenCV快速实现简单车牌识别系统
OpenCV—轮廓操作一站式详解:查找/筛选/绘制/形状描述与重心标注(C 版)
如何使用Python检测和识别车牌?
我的OpenCV学习笔记(20):提取元素的轮廓及形状描述子
OpenCV矩形检测
opencv小项目练习之数独求解
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服