2017-07-05 45 views
1

我正在研究使用开源库检测照片中测试的最佳方法。如何检测照片中的文本

我认为标准方法如下(注:步骤1 - 4全部使用OpenCV的):

1)检测的文件

2)转换文档大纲所以它的平板和裁剪,使用所述概述

3)使文件白色的背景下,利用过滤器

4)进料得到的图像,以超正方体

是这是最佳的过程,还是有更好的方法,还是更好的工具? 另外,如果照片没有文档大纲(可能步骤1 & 2是冗余的),会发生什么情况?

是否有自动检测文档方向(即纵向/横向)?

回答

1

我认为你的过程很好。我为Android项目使用了类似的流程。
我认为如果文档是纵向/横向,您可以发现的唯一方法是用大纲的边框长度来推理。
我不认为有一个自动的方法来做到这一点,也许你可以找到最接近的外部轮廓与4段折线(都可以在opencv中可用)。
为了得到这个,你必须使用contour hierarchycontous approximation(见cv2.approxPolyDP)。
这是我如何去自动轮廓检测。如我所说,你算法的其余部分对我来说似乎很好。附件号码

PS。我会离开我的Android project GitHub link。我不知道它是否对您有用,但在此我通过拖动一些手柄来指定轮廓,然后转换图像并使用Java和OpenCV将其提供给Tesseract。是的这是一个非常糟糕的主意,在Android应用程序的主线程中这样做,是的,该应用程序没有完成。我只是想试验OCR,所以我并不关心性能和可用性,因为这不是用来用来学习的。

+1

感谢您的回答magicleon!我原以为会有一些方法通过查看字母的方向来发现文档的方向。 – user3259383

+0

不客气的人!如果我解决了您的问题/疑问,您可以将其标记为解决方案;) – magicleon

+0

其实,我很惊讶,考虑到这是一个常见的要求,没有人没有创建一个自动完成所有这些工作的库。 – user3259383

1

查找均匀宽度变换。

这样做的是检测边缘的宽度相对于其相对边缘的宽度差不多。因此,像排水管(可以在稍后传递中消除),但也是大部分文本。虽然在概念上它与距离变换相似,但公开的方法使用相当特殊的正常投影方法和Canny边缘检测。

+0

我认为你的意思是** Stroke ** width transform – Miki