基于OpenCV的数字识别系统

点击上方“小白学视觉”,选择加"星标"或“置顶

重磅干货,第一时间送达a55c133e254449ce4e49a8fb59ebce78.png

2cf08137515139cc47c99dd0c42bd901.png

综述

2012年iOS应用商店中发布了一个名为FuelMate的Gas跟踪应用。小伙伴们可以使用该应用程序跟踪汽油行驶里程,以及有一些有趣的功能,例如Apple Watch应用程序、vin.li集成以及基于趋势mpg的视觉效果。

9d0fa22358804d18079094ef9f6a1e8d.png

燃料伴侣

对此我们有一个新想法,该如何添加一个功能帮助我们在泵中扫描燃油,并在应用程序中输入燃油信息?让我们深入研究如何实现这一目标。

技术

对于这个项目的我们首先应该编写一个简单的Python应用程序以拍摄汽油泵的图像,然后尝试从中读取数字。OpenCV是用于计算机视觉应用程序的流行的跨平台库。它包括各种图像处理实用程序以及某些机器学习功能。除此之外我们希望可以先使用Python对其进行原型设计,然后将处理代码转换为C ++以在iOS应用程序上运行。

目标

我们首先要考虑以下两个问题:

1.我们可以从图像中分离出数字吗?

2.我们可以确定图像代表哪个数字吗?

数字分割

如何确定图像中的数字有多种方法,但是我提出了使用简单的图像阈值法来尝试查找数字的方法。

图像阈值化的基本思想是将图像转换为灰度,然后说灰度值小于某个常数的任何像素,则该像素为一个值,否则为另一个。最后,您得到的二进制图像只有两种颜色,在大多数情况下只是黑白图像。

这个概念在OCR应用中非常有效,但是主要问题是决定对该阈值使用什么。我们可以选择一些常量,也可以使用OpenCV选择其他一些选项。我们可以使用自适应阈值而不是使用常数,这将使用图像的较小部分并确定要使用的不同阈值。这在具有不同照明情况的应用中特别有用,特别是在扫描气泵中。

将图像设置为阈值后,可以使用OpenCV的findContours方法查找图像中连接了白色像素部分的区域。绘制轮廓后,便可以裁剪出这些区域并确定它们是否可能是数字以及它是什么数字。

基本图像处理流程

这是我在测试图像处理中使用的原始图像。它有一些眩光点,但是图像相当干净。让我们逐步完成获取此源图像的过程,并尝试将其分解为单个数字。

  • 2
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值