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

在使用字符识别的过程中,需要辨别一些字符本身是否残缺或与标准字符是否有形变又或者想知道其在截图上面的坐标是什么,这样就需要用到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.cpp	diff
...			
1103	1103		
1104	1104		    // Now, process the word...
1105	1105		    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 += "\">";
1107	1114		    const char *font_name;
1108	1115		    bool bold, italic, underlined, monospace, serif, smallcaps;
1109	1116		    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 后面的就是其相对截图左上角的坐标了

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




  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值