我正在开发一个项目,需要开发OCR算法(即从图像中读取文本并将其转换为不同的语言)。因此,我的第一个任务是从图像中获取文本。
完成第一个任务的步骤如下:
1. 从给定的源加载任何图像格式(bmp、jpg、png)。然后使用阈值(Otsu算法)将图像转换为灰度图像并进行二值化处理。//已完成(如何从输出图像中去除噪声?)
结果
2. 检测图像特征,如分辨率和翻转,以便最终将其转换为经过修正的图像进行进一步处理。(已完成图像旋转代码,但无法检测需要旋转的图像角度,因此仍在处理角度检测部分。) 3. 检测并删除线条。这一步是为了改善页面布局分析,提高下划线文本的识别质量,检测表格等。(决定在最后完成该部分) 4. 页面布局分析。在这一步中,我正在尝试识别图像中存在的文本区域,以便仅使用该部分进行识别,而其余区域则留空。 5. 文本行和单词的检测。在这里,我们还需要注意不同的字体大小和单词之间的小间距。 6. 字符识别。这是OCR的主要算法;必须将每个字符的图像转换为适当的字符代码。有时,该算法会对不确定的图像产生多个字符代码。例如,“I”字符的识别可以产生“I”,“|”“1”,“l”代码,最终的字符代码将在稍后选择。 7. 将结果保存到所选的输出格式中,例如可搜索的PDF、DOC、RTF、TXT。重要的是保存原始页面布局:列、字体、颜色、图片、背景等。
我需要在第六部分寻求帮助。我已经完成了行检测部分(从包含n行的段落中获取n个图像),但卡在接下来的单词和字符识别部分。如果您知道与OCR和字符识别有关的好链接,请在此处发布。
对于字符识别,我考虑使用asprise(Java库)http://asprise.com/product/ocr/index.php?lang=java。
完成第一个任务的步骤如下:
1. 从给定的源加载任何图像格式(bmp、jpg、png)。然后使用阈值(Otsu算法)将图像转换为灰度图像并进行二值化处理。//已完成(如何从输出图像中去除噪声?)
结果
2. 检测图像特征,如分辨率和翻转,以便最终将其转换为经过修正的图像进行进一步处理。(已完成图像旋转代码,但无法检测需要旋转的图像角度,因此仍在处理角度检测部分。) 3. 检测并删除线条。这一步是为了改善页面布局分析,提高下划线文本的识别质量,检测表格等。(决定在最后完成该部分) 4. 页面布局分析。在这一步中,我正在尝试识别图像中存在的文本区域,以便仅使用该部分进行识别,而其余区域则留空。 5. 文本行和单词的检测。在这里,我们还需要注意不同的字体大小和单词之间的小间距。 6. 字符识别。这是OCR的主要算法;必须将每个字符的图像转换为适当的字符代码。有时,该算法会对不确定的图像产生多个字符代码。例如,“I”字符的识别可以产生“I”,“|”“1”,“l”代码,最终的字符代码将在稍后选择。 7. 将结果保存到所选的输出格式中,例如可搜索的PDF、DOC、RTF、TXT。重要的是保存原始页面布局:列、字体、颜色、图片、背景等。
我需要在第六部分寻求帮助。我已经完成了行检测部分(从包含n行的段落中获取n个图像),但卡在接下来的单词和字符识别部分。如果您知道与OCR和字符识别有关的好链接,请在此处发布。
对于字符识别,我考虑使用asprise(Java库)http://asprise.com/product/ocr/index.php?lang=java。