本文演示如何使用 OpenCV 和 Python 识别图像中的数字。
在本教程的第一部分,我们将讨论什么是七段显示器,以及我们如何应用计算机视觉和图像处理操作来识别这些类型的数字(不需要机器学习!)
小福利:领完再看!迪迦给大家准备的250G人工智能学习资料礼包(内含:两大Pytorch、TensorFlow实战框架视频、图像识别、OpenCV、计算机视觉、深度学习与神经网络等等等视频、代码、PPT以及深度学习书籍)
只需要你点个关注,然后扫码添加助手小姐姐VX即可无套路领取!
扫码添加即可
七段显示
您可能已经熟悉七段显示器,即使您不认识特定术语。 这种显示的一个很好的例子是您的经典数字闹钟:
闹钟上的每个数字都由一个七段组件表示,如下所示:
七段显示器总共可以呈现 128 种可能的状态:
我们只对其中的 10 个感兴趣——数字 0 到 9:
我们的目标是编写 OpenCV 和 Python 代码来识别图像中的这十个数字状态中的每一个。
设计OpenCV 数字识别器
我们将使用恒温器图像作为输入:
识别的步骤:
步骤 1:定位恒温器上的 LCD。 这可以使用边缘检测来完成,因为塑料外壳和 LCD 之间有足够的对比度。
步骤2:提取 LCD。 给定一个输入边缘图,我可以找到轮廓并寻找矩形的轮廓——最大的矩形区域应该对应于 LCD。 透视变换会给我一个很好的 LCD 提取。
步骤3:提取数字区域。 一旦我有了 LCD 本身,我就可以专注于提取数字。 由于数字区域和 LCD 背景之间似乎存在对比,我相信阈值和形态操作可以实现这一点。
步骤4:识别数字。 使用 OpenCV 识别实际数字将涉及将数字 ROI 划分为七个部分。 从那里我可以在阈值图像上应用像素计数来确定给定的片段是“开”还是“关”。
所以看看我们如何使用 OpenCV 和 Python 完成这个四步过程来进行数字识别,继续阅读。