使用OpenCV,如何在执行OCR之前检测文本方向?

时间:2012-04-12 11:29:01

标签: objective-c ios opencv

我在iOS应用程序中使用OpenCV。我想对某些文本执行OCR,但我首先需要确定它的方向。

我如何在OpenCV中执行此操作?

4 个答案:

答案 0 :(得分:6)

我不确定在没有在Objective-C中提供OCR的情况下可以回复这个问题 - 在没有使用OCR库的情况下很难在几行文本中完成。

好吧,20年前,我写了一个OCR系统(不使用任何OCR库)来实时读取银行支票。顺便说一句,它也是对手写签名进行身份验证的。

检查方向的问题是怀孕的,因为检查可以随机(由操作人员)插入小型机动银行检查扫描仪。

由于所有银行都使用不同的页面布局和装饰,因此在不依赖磁性墨水(扫描仪未检测到)的情况下找到方向的唯一方法是实际尝试对顶部的第一个字符进行OCR识别。 'page'。

有些字符像'O'一样含糊不清,但大多数字符会告诉你图片是否被反转或镜像,所以只需阅读前3-5个字符即可完成工作(除非你有重复)。

祝你好运!

答案 1 :(得分:2)

此答案已更新

  • 如果您需要检测文本的旋转角度,请查看this article(它共享源代码):

  • 在文本被歪斜之后,可以执行OCR过程并将其结果与字典进行比较。如果匹配率很高,则表示文本已正确旋转,方向现在正常。

答案 2 :(得分:1)

几个星期前我遇到了类似的问题,只是在我分心之前就开始研究它。无论如何,您可以使用离散傅里叶变换实现您想要的(在某种程度上)。模糊或侵蚀图像,使单个字/线中的所有小白色间隙填充为纯黑线(这有助于从图像中去除很多高频噪声),拍摄图像的DFT,应用低 - 在其上传递或带通滤波器(频率根据相对于图像大小的所需字体大小),并分析得到的幅度图。您将需要进行一些研究或其他人需要详细说明,但这绝对是我找到的最佳解决方案。

我现在正在做另一个项目,但是我会在一周左右的时间内回到这个项目,然后让你知道更多有关它的细节,如果其他人还没有这样做的话。当然,这篇文章现在有点老了,所以我甚至可能都没有得到回应哈哈,但无论如何,对于未来的其他人来说,这将是一个很好的参考。

答案 3 :(得分:1)

Hough transform可能help you。在霍夫投票地图上,最大值(确切地说它是主导群集,但你需要k-means,其中k = 1)将为你提供所需的角度。

enter image description here