2

我有一个 OCR 项目,但它只适用于文本相当笔直而不是颠倒的图像。(不旋转文本)所以我想让 OCR 能够识别任何类型的图像,即使是倒置的。但我不知道解决这个问题的方法是什么。

我需要分析字母行之类的东西,但即使那样我也无法确定行是否颠倒。

4

3 回答 3

1

My answer to you will be very high level as this is not simple, as you can imagine. You probably are doing some sort of image segmentation, where you segment each character of your text. But in order to recognize the characters, even when they are rotated, you need to use a feature vector with rotational invariant characteristics. To do it some people are using

Zernike Moment

Neocognitron neural network - widely used for handwriting

I don't think it's a simple task

于 2010-02-19T13:50:23.200 回答
1

如果您正在对其执行 OCR 的图像来自杂志或书籍,其中多行文字较多,我建议您尝试查找页面的旋转方向。

可能最简单的方法是对线条应用霍夫变换。由于每行文本之间的空白应该是一条宽阔的白线,因此无需对图像进行任何预处理即可工作。否则尝试模糊它或使用“关闭”形态学操作将文本行变成不透明块。

一旦通过霍夫变换在图像中找到线条,您应该只提取主旋转角度(如所有线条的平均角度)并将其旋转回来。

于 2010-02-19T22:27:41.677 回答
1

不确定您是在创建 OCR 引擎还是使用 OCR 引擎。大多数商业 OCR 引擎可以检测到页面颠倒(或旋转 90 度)并自动旋转它。例如,我公司的GlyphReader OCR Engine可以做到这一点。

一个简单的解决方案是获取图像的一部分并以四个角度通过引擎运行,直到获得大量可识别的文本。您可以使用字典来查看您返回的是否是单词和置信度,以查看引擎对其识别的确定程度。

如果您的引擎可以报告置信度级别,并且它们的报告始终低于某个阈值,那么您应该停止并查看文档是否已轮换。

对于 90 和 270,霍夫变换将告诉您图像中的线条是水平的还是垂直的。它还可以告诉您它们是否只是稍微偏离水平方向,以便您也可以纠正它。

于 2010-03-02T12:55:23.667 回答