图像处理 - 旋转扫描的文档以对齐文本

时间:2011-01-20 16:41:46

标签: c# image image-processing ocr pixel

我有一个OCR C#项目,我在其中获得一个带有文本的扫描文档,我需要返回文档中的文本。

我已经有了解析文本的解决方案,但是我们被卡在扫描文档旋转的部分(向右或向左)。

假设图像中没有噪点(所有像素都是白色或黑色),任何人都可以帮助我们使用算法在运行时旋转图像(没有人眼)?

由于

2 个答案:

答案 0 :(得分:3)

使用Hough Transform检测应该是水平文字方向的最强线方向。 Hough变换的基本前提是将x-y坐标转换为r-theta坐标系,其中r是距离原点的距离,θ是方向。

图像转换后,与相同的图像相同以找到最强的方向。

因为此方法在离散r和thetas中使用投票。 theta的分辨率与使用的箱数一样好。因此,您可能希望将其限制为更精确的角度或速度,而不是在一度增量中使用-180到+180度。

答案 1 :(得分:1)

(我不是专家,但好奇心写了这篇文章)

恕我直言,这个问题可以通过暴力试验和错误方法经济有效地解决。因为没有太多错误的定位。

我认为您可以轻松确定文本的边界框。此边界框只能以两种方式进行错误定向。明智地旋转时钟或明智地旋转计数器时钟。因此,通过最大两次旋转图像(旋转使边界框竖直),您可以找到正确的方向。

也就是说,您无需进一步处理图像即可找到正确的文档方向,以确定文本对齐方式。我认为确定文本对齐将是一个相当大的处理。

<强>更新

我建议我们不必找到准确的旋转角度。如果粘接盒是直立的,它可以是直角或180度旋转角度。

1)使粘接盒直立
2)运行OCR,检查结果,如果确定则完成 3)旋转180度
2)运行OCR。这次它必须是正确的角度

如果我们真的必须找到确切的旋转角度,我认为必须首先找到字符“o”,“c”或“m”(不包括斜体字体)的可能形状。或者,找到期间的相对位置('。')。我认为这需要复杂的操作。