【问题标题】:Extract numbers from Image从图像中提取数字
【发布时间】:2013-12-15 18:11:21
【问题描述】:

我有一张手机信用卡充值卡的图片,我想只提取充值号码(灰色区域)作为可以直接给手机充值的数字序列

这只是一张样张照片,不能视为标准,因此矩形区域可能位置不同,背景和卡片大小也可能不同。划痕区域可能没有完全划伤,相机的深度和位置也可能不同。我在互联网上阅读了很多论文,但我找不到任何有趣的东西,并且大多数论文都讨论了手写数字的检测。 任何链接或算法名称都可能非常有用。

【问题讨论】:

  • Tesseract 可能是目前最好的开源 OCR 软件。在这个阶段,定位你想要扫描的数字的位置可能会是一个棘手的部分。如果数字总是有灰色背景,那么也许这是首先要寻找的东西。
  • @Ibrahim,你找到解决方案了吗?
  • @emonik 恐怕我到现在都没有
  • @IbrahimAmer 任何解决方案?我尝试使用 tesseract,但它不适用于刮刮卡
  • @Aadam 绝对不能与 tesseract 一起使用,因为 tesseract 要求您已经对字符/数字进行了分段。不幸的是我没有进一步尝试,所以我现在没有解决方案,但是当我找到一个时,我一定会分享它:))

标签: image-processing ocr image-segmentation


【解决方案1】:

您可以使用机器学习方法搜索vehicle plate number detection上的论文。基本上你需要先提取数字,你可以使用sobel过滤器来提取垂直边缘,然后阈值(二值图像)和形态学操作(去除每个垂直边缘线之间的空白,并连接所有具有大量边缘的区域)。最后检索轮廓并用掩码填充连接的组件。

提取数字后,可以使用神经网络、svm等机器学习方法进行识别。

希望对你有帮助。

【讨论】:

【解决方案2】:

从图像中提取GRAY部分,然后使用Tesseract(OCR)提取写在灰度图像上的文字。

【讨论】:

    【解决方案3】:

    我认为您可能在互联网上找不到从图像中读取的算法。没有人会透露这一点。我认为,如果您是一名铁杆程序员,您可以使用自己的代码来破解它。我尝试了字体更清晰且算法简单的屏幕截图。为此,算法应该很复杂,因为您是从照片源而不是屏幕截图中读取的。

    【讨论】:

      【解决方案4】:

      按照以下步骤操作:

      加载图像。

      选择数字(通过轮廓查找和对字母的面积和高度应用约束以避免错误检测)。这将分割图像,从而模块化您要执行的 OCR 操作。

      用于执行识别和分类的简单 K - 最近邻算法。

      【讨论】:

        【解决方案5】:

        如果最终目标只是制作一个机器人,您可能可以直接从应用程序中提取文本,而不必担心 OCR,但如果您想了解更多关于机器学习的知识并且您还没有做过 MNIST和 CIFAR-10 数据集是很好的起点。

        如果您对图像进行预处理,使黄色像素为黑色,而所有其他像素为白色,您将拥有一个更清洁的来源。

        如果您想为此推进 Tesseract 并且预处理还不够,那么您可能必须针对此字体重新训练它。您将需要准备一个语料库,按照您期望源数据的外观对其进行处理,然后使用 qt-box-editor 之类的工具来更正数据。本指南应该能够引导您完成再培训的基本步骤。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2020-02-19
          • 1970-01-01
          • 1970-01-01
          • 2012-09-14
          • 2023-03-18
          • 2012-06-02
          • 1970-01-01
          相关资源
          最近更新 更多