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

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

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

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

谢谢

【问题讨论】:

  • 图片会一直旋转90度左右吗?

标签: c# image image-processing ocr pixel


【解决方案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”(不包括斜体)形状开始。或者,找到句点('.')的相对位置。我认为这将需要复杂的操作。

    【讨论】:

    • 这是我们在批量扫描/编码套件中的做法。
    • 是的,方向不是问题,问题在于找到旋转图像的确切角度。如果我理解正确,边界框将由正方形确定,该正方形是通过采用最高、最低、最右边和最左边的黑色像素线创建的。假设我得到了这个边界框,我需要做哪些大型处理来确定文本对齐方式?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-12-04
    • 2022-06-15
    • 1970-01-01
    • 2021-05-19
    • 1970-01-01
    • 2017-01-17
    • 2015-01-20
    相关资源
    最近更新 更多