符号和文字分割及其位置和行号来自具有C ++代码的文本图像

时间:2015-07-05 11:00:37

标签: matlab token ocr

我有一个存储在文本图像中的C ++程序。我需要的是从文本图像中提取符号,字母数字和标记,以及它们的尺寸。这里的维度表示文本图像中的起始行,结束行,起始列,结束列像素号。我在这里引用一个例子: 如果存在带有C ++代码的文本图像(图像为* .png格式),

#include<iostreme>
using namespace std; 

我必须编写一个matlab代码来读取上面的图像,并生成以下数据集:

+-------------+-----------+-----------+---------+--------------+------------+
| Line Number |   Item    | Start_Row | End_Row | Start_Column | End_Column |
+-------------+-----------+-----------+---------+--------------+------------+
|           1 | #         | ---       | ---     | ---          | ---        |
|           1 | include   | ---       | ---     | ---          | ---        |
|           1 | <         | ---       | ---     | ---          | ---        |
|           1 | stdio.h   | ---       | ---     | ---          | ---        |
|           1 | >         | ---       | ---     | ---          | ---        |
|           2 | using     | ---       | ---     | ---          | ---        |
|           2 | namespace | ---       | ---     | ---          | ---        |
|           2 | std       | ---       | ---     | ---          | ---        |
|           2 | ;         | ---       | ---     | ---          | ---        |
+-------------+-----------+-----------+---------+--------------+------------+

我觉得整个目标可以分为三个部分:首先是文本图像中的分词。其次,识别坐标。第三,行号的计数。

对于前两个目标,我使用了Tesseract-OCR来识别单词以及它们各自的坐标。下面是我提取单词和各自坐标的方式。 [我已经手动将图像从ONG转换为TIF格式,如tesseract手册中所述]。

<Path to Tesseract-OCR folder>\tesseract.exe "image.tif" output \*extracts words*\
<Path to Tesseract-OCR folder>\tesseract.exe "image.tif" output makebox \*extracts word dimensions*\

作为输出,我将提取的单词提取到名为output.txt的文本文件中。但是, makebox 命令正在查找图像中每个单个字符的坐标。而我需要找到每个单词的坐标(在这种情况下,分别是符号和标记)。

所以,我的问题是如何生成这样一个文本文件,它会分别显示每个符号,字母数字和标记的坐标,而不是每个字符。

tesseract中是否有任何选项可以直接从图像文件中提取每个单词及其坐标,而不是每个字符。我怀疑是否需要一个词法分析器来执行此操作。如果是,那我怎么能和tesseract一起使用呢?

这就是我解决问题的方法。如果还有其他简单的方法可以实现目标,那么请分享给我。谢谢。

0 个答案:

没有答案