java - Tesseract板检测

标签 java android image-processing tesseract

我正在使用 tess-two 在 android 中使用 tesseract wrapper 。我已经阅读了有关该库的文档,但我遇到了在我的图像中重新定义正方形的问题。例如,我想识别数独板上最外面的正方形。

有一个exampleopencv 中,但我找不到用于 tesseract 的内容。

最佳答案

Tesseract 是一个 OCR 框架。它对于识别图像中的字符和单词很有用。对于数独板,您有两个主要问题:

  1. 认识游戏网格的轮廓以及 9 行和列。
  2. 认识已经填写的数字。

可以通过使用线检测或角点检测算法找到角点或可能的图像边缘来定位数独网格;您应该尝试使用 Google Hough Lines 或 Corner Detection。

如果您以一定角度握持相机,则图像中的网格实际上可能不是正方形,因此您还需要在处理之前将形状转换为正方形。您应该使用 Google Homography。

假设您找到网格并能够将其转换为正方形,您现在可以找到每一行和每一列。此时您可以检查每个单元格,一次检查一个单元格,看看它是空的还是包含数字。如果它包含数字,则需要计算出是哪一位。

现在您可以在最后阶段使用 Tesseract,但它太过分了。您可以自己构建一个简单的模板匹配方法就足够了。

完成上述背景研究后,您将能够选择支持您所需操作的框架或库。 OpenCV 在这个领域是一个非常强大的竞争者,在这里和网络上都有很多对它的支持,但在选择工具来解决它之前,你真的需要更好地理解这个问题。

关于java - Tesseract板检测,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30089821/

相关文章:

java - 未装饰的 window 覆盖了整个屏幕

java - gwt 2.7 忽略排除标签

java - 如何使用 MediaPlayer 开始 Activity

image-processing - 获取类似于 ImageMagick 输出的感知差异输出图像

java - 更改 WritableRaster 对象会影响 bufferedImage 对象

python-3.x - 使用opencv LineSegmentDetector查找图像的线条

java - 静态变量作为全局变量,静态对象何时被垃圾收集?

java - 或者 if block 中的条件仅检查第一个 stmt 但不检查第二个 stmt

android - 如何用listview实现autocompletetextview?

android - 错误 : Invalid Resource directory name in Eclipse