【问题标题】:Extracting Numbers from an Image using OpenCV使用 OpenCV 从图像中提取数字
【发布时间】:2012-06-02 08:00:38
【问题描述】:

我有这样的图像,我想从中提取数字。

我一直在使用 OpenCV 和模板匹配我特别感兴趣,但由于该技术不考虑任何图像缩放和旋转,我正在寻找可能能够至少考虑缩放的技术.

请提供任何建议或帮助。所有操作都是实时的。

附:画质无法提高,相机的能力就是这样。

【问题讨论】:

  • 您可以调整/旋转模板/图像并再次运行模板匹配,以处理不同的比例和旋转。
  • 接受:建议采纳。我还想澄清一件事,我正在通过手头的数字模板来完成这个过程。然后随着图像的出现,我开始与预定义的 ROI 进行匹配。这整个过程好吗?可以改善吗??
  • 可以,只要您确定 ROI 将包含数字即可。此外,由于样品看起来颜色不同,请确保您也考虑到这一点。
  • 我正在将所有内容都转换为二进制图像,因此会考虑颜色。此外,如果带有图像的字体发生变化怎么办?我必须相应地更改我的模板,不是吗?这是唯一的出路吗?

标签: c++ c opencv image-processing


【解决方案1】:
【解决方案2】:

要在不使用 SIFT 或 SURF 的情况下检测这些数字,还可以基于 K 最近邻算法创建分类器。您可以生成 .pbm 文件的数据库,并使用找到的 c++ OCR 库将它们加载到分类器 here

一步一步:

1:找到一种使用cvFindContours从图像中提取数字的方法

2:将这些图像存储为带有cvSaveImage的png文件,并将它们转换为二进制pbm文件

3:对 .pbm 文件进行编号,并将它们存储在每个编号的单独文件夹中

4:使用上面显示的库加载 .pbm 文件

5:对图片实时使用ocr::classify函数,获取图片所属的类别(例如哪个编号)。

【讨论】:

  • 我一定会试一试并在几天内报告。我确实看过 KNN,但现在会更深入地研究它。
  • 我在 CotourMatching 中有一些适合我们应用的东西。我一直在研究预处理图像后的模板匹配。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-04-30
  • 2018-08-26
  • 1970-01-01
  • 2011-06-10
  • 2019-06-20
  • 2012-02-21
  • 2019-07-17
相关资源
最近更新 更多