我有一个存储在文本图像中的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一起使用呢?
这就是我解决问题的方法。如果还有其他简单的方法可以实现目标,那么请分享给我。谢谢。