图像处理 - 旋转扫描的文档以对齐文本
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”(不包括斜体)形状开始。或者,找到句点('.')的相对位置。我认为这将需要复杂的操作。
【讨论】:
这是我们在批量扫描/编码套件中的做法。 是的,方向不是问题,问题在于找到旋转图像的确切角度。如果我理解正确,边界框将由正方形确定,该正方形是通过采用最高、最低、最右边和最左边的黑色像素线创建的。假设我得到了这个边界框,我需要做哪些大型处理来确定文本对齐方式?以上是关于图像处理 - 旋转扫描的文档以对齐文本的主要内容,如果未能解决你的问题,请参考以下文章