tesseract-ocr 3.02 信心值 字符坐标 学习笔记

来源:互联网 发布:万合天宜工作体验 知乎 编辑:程序博客网 时间:2024/06/07 14:05

在使用字符识别的过程中,需要辨别一些字符本身是否残缺或与标准字符是否有形变又或者想知道其在截图上面的坐标是什么,这样就需要用到tesseract-ocr 输出的HTML文件的功能了.

命令行为

tesseract -l eng outtext hocr


其中hocr 参数是本身自带的一个配置文件,里面包含内容  tessedit_create_hocr 1,表示输出Htmlde 意思

这时候当前工作目录中就会出现 outtext.html文件了. 


但用3.02版本的同学可能会看到,html里面只有bbox的坐标数据,没有信心值啊.原来3.02

版已经把该内容删减掉了.见下面 有加号的代码,把它们加进去,重新编译一下就可以了.

Modify/trunk/api/baseapi.cppdiff...1103110311041104    // Now, process the word...11051105    hocr_str.add_str_int("<span class='ocrx_word' id='word_", wcnt);1106-    AddBoxTohOCR(res_it, RIL_WORD, &hocr_str);1106+int left, top, right, bottom;1107+    res_it->BoundingBox(RIL_WORD, &left, &top, &right, &bottom);1108+    hocr_str.add_str_int("' title=\"bbox ", left);1109+    hocr_str.add_str_int(" ", top);1110+    hocr_str.add_str_int(" ", right);1111+    hocr_str.add_str_int(" ", bottom);1112+    hocr_str.add_str_int("; x_wconf ", res_it->Confidence(RIL_WORD));1113+    hocr_str += "\">";11071114    const char *font_name;11081115    bool bold, italic, underlined, monospace, serif, smallcaps;11091116    int pointsize, font_id;

这时问题又遇到了,在编译时出现很多错误,说某个字符缺少了啊之类,实际上这大多跟内码有关,VS2010以上的把有问题的转成unicode就搞定了,换行符的也一样.

有的人可能做到这步,但编译出来的程序又运行不了. 不要急,这主要跟两个地方有关:

1、libtesseract302d.dll 没有成功编译,或没有摆在刚刚编译出来的tesseract程序同一目录.

2、 liblept168d.dll不是用VS2010编译的,这个上网下一个编译好的就行了。

最后,程序终于正常运行了。看看输出文件 outtext.html,里面想要的那句话已经变成了这样

<span class='ocrx_word' id='word_1' title="bbox 64 21 110 45 ;x_wconf 92">200</span> 

其中x_wconf 92 就是信心值了,bbox 后面的就是其相对截图左上角的坐标了

至此,通过一些文字处理的算法,就能把他们提出来比较了。 




原创粉丝点击