我有一个OCR C#项目,我在其中获得一个带有文本的扫描文档,我需要返回文档中的文本。
我已经有了解析文本的解决方案,但是我们被卡在扫描文档旋转的部分(向右或向左)。
假设图像中没有噪点(所有像素都是白色或黑色),任何人都可以帮助我们使用算法在运行时旋转图像(没有人眼)?
由于
答案 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”(不包括斜体字体)的可能形状。或者,找到期间的相对位置('。')。我认为这需要复杂的操作。