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

Posted

技术标签:

【中文标题】图像处理 - 旋转扫描的文档以对齐文本【英文标题】:Image processing - rotate scanned document to align text 【发布时间】:2011-06-12 14:29:34 【问题描述】:

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

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

假设图像中没有噪声(所有像素都是白色或黑色),谁能帮助我们在运行时旋转图像的算法(无需人眼)?

谢谢

【问题讨论】:

图片会一直旋转90度左右吗? 【参考方案1】:

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

图像转换后,将相同的 theta 分箱以找到最强的方向。

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

【讨论】:

【参考方案2】:

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

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

我认为您可以轻松确定文本的边界框。该边界框只能以两种方式具有错误的方向。明智地旋转时钟或明智地旋转逆时钟。因此,图像最多旋转两次(使边界框直立的旋转)您可以找到正确的方向。

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

更新

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

1) 使粘合盒直立 2) 运行 OCR,检查结果,如果正常则完成 3) 旋转 180 度 2)运行OCR。这次一定是直角

如果我们真的要找到准确的旋转角度,我认为必须从寻找可能的字符“o”、“c”或“m”(不包括斜体)形状开始。或者,找到句点('.')的相对位置。我认为这将需要复杂的操作。

【讨论】:

这是我们在批量扫描/编码套件中的做法。 是的,方向不是问题,问题在于找到旋转图像的确切角度。如果我理解正确,边界框将由正方形确定,该正方形是通过采用最高、最低、最右边和最左边的黑色像素线创建的。假设我得到了这个边界框,我需要做哪些大型处理来确定文本对齐方式?

以上是关于图像处理 - 旋转扫描的文档以对齐文本的主要内容,如果未能解决你的问题,请参考以下文章

如何检测将显微镜图像旋转对齐到模板的良好特征

从复杂文档进行 OCR 扫描

在保持对齐的同时以相反的方向旋转 div 和文本?

如何知道 PDF 是不是仅包含图像或已被 OCR 扫描以进行搜索?

提高扫描文档的 OCR 准确性

使用自动布局约束旋转后对齐 UILabel 文本