SilkTest高级进阶系列1-用textract来识别文本

在以前的文章中,我简单介绍过如何使用SilkTest中的OCR功能识别界面或者是bmp图片上的文字内容。也提到过silktest自带一个ocr识别的pattern库,该库可以识别windows下的某些字体。不过这些字体都是常见的字体,种类有限,对于某些特殊的字体,默认是无法识别的。下面是一个例子。

在做这个例子之前,我们需要一些准备工作:

打开word,在里面输入如下一行文字,并将其字体设置为Bell MT,字体大小为18。然后对该行文字抓屏并将其存为bmp文件c:/ocr/new.bmp
Auto Test: SilkTest 2006

调用下面的silktest代码来尝试识别该bmp文件上的文字:
[-] testcase OCR_Font() appstate none
[ ] int iRet  // return value
[ ] string sText // text
[ ] string sBmp = “c:/ocr/new.bmp”
[ ] iRet = OcrGetTextFromBmp (sText, sBmp)
[ ] print(sText)

其运行结果只会打印一个冒号:,这表明默认的textract pattern库无法识别Bell MT字体,我们必须创建一个支持Bell MT字体的pattern库才行。下面就是完成这一任务的一些步骤:
1.首先我们需要备份silktest目录下面的textract pattern库文件sgOcrPattern.pat和配置文件textract.ini
2. 打开textract.ini,在Include1一行的最后面加上你希望支持的字体名称,用逗号结束,注意不要在字体名称和逗号之间有任何空格,看上去应该像是…,Arial Narrow,Bell MT,
3.保存对textract.ini的修改
4.在silktest目录下面运行ExGUI.exe,点击”Build font pattern database”按钮,在新打开的对话框中点击OK,这个时候该工具会帮你扫描系统中的字体库,并且根据textract.ini所作的设置来生成可用的新pattern库,等待该扫描完成后,你会发现sgOcrPattern.pat的时间戳被更新了。
5.再次运行上面的测试用例OCR_Font(),它将调用新的pattern库来识别bmp图片上的文字,这次它就能够打印出正确识别的结果Auto Test: SilkTest 2006了。

Leave a comment

请输入正确的验证码