我正在开展一个项目,我必须从图像中读取文档。在初始阶段,我将阅读机器打印的文档,然后最终转移到手写文档的图像。但是我这样做是为了学习目的,所以我不打算像Tesseract等那样使用api。 我打算分步进行:
答案 0 :(得分:7)
第一种选择是通过偏斜校正,即测量偏斜角。例如,您可以通过高斯滤波或水平方向的侵蚀来实现这一点,以便角色变宽并接触。然后二值化并细化或找到斑点的下边缘(或直接找到斑点的方向)。你会得到略微倾斜的线段,它们会给你倾斜的方向。
当您知道歪斜方向时,您可以反向旋转以执行去歪斜。然后,垂直直方图将可靠地分隔线条,您可以在每个线条中使用水平直方图。
第二个选项,IMO要好得多,就是对字符进行二值化并执行blob检测。然后,边界框的邻近分析将允许您确定字符链。他们会告诉你线条,间距越大,划分单词。
答案 1 :(得分:0)
您是否考虑使用Google Cloud Vision或OCR.space等云服务?两者都为您提供的测试图像提供了良好的结果(Google的结果更好,但OCR.space是免费的)。