【问题标题】:How do I recognize a rotated digit in an image using OpenCV 3 and Tesseract/Template Matching?如何使用 OpenCV 3 和 Tesseract/模板匹配识别图像中的旋转数字?
【发布时间】:2019-10-11 01:38:37
【问题描述】:

这是我的问题。我有一些简单的图像,其中绿色圆圈内有一些黑色的大数字。问题是它们可以随机旋转。到目前为止,我设法做的是识别绿色圆圈,然后将它们从图像中剪掉,这样我就只剩下数字了。 为了把它们拉直,我想用以下方式构造一个旋转的边界矩形:

  • 首先我找到带有cv::findContours的数字的所有轮廓
  • 然后对于每个数字轮廓,我通过函数cv::minAreaRect 构造包含数字的最佳拟合旋转矩形

一切正常,除了数字4,其旋转的矩形与数字不对齐而是略微倾斜,如下图所示:

我也尝试使用拟合椭圆,但它也倾斜了。我能想到的唯一解决方案是使用模板匹配,提供本身也旋转的模板。

【问题讨论】:

    标签: c++ opencv ocr tesseract


    【解决方案1】:

    如果数字的字体是一致的,并且如果您可以隔离圆圈,并且如果它们是(或可以做成)统一大小,那么您可以完全绕过 Tesseract,但代价是构建各种旋转中所有数字的模板。

    假设应用模板在 +/- 2° 范围内会产生良好的信号,即 (360/5)*10 = 720 个模板覆盖 0-9。将应用这些模板的成本与 Tesseract 调用的成本进行基准比较会很有趣。

    【讨论】:

      猜你喜欢
      • 2015-10-13
      • 1970-01-01
      • 1970-01-01
      • 2012-09-18
      • 2013-04-08
      • 1970-01-01
      • 2023-03-28
      • 2019-08-03
      • 2012-05-26
      相关资源
      最近更新 更多