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

发表于:2011-04-02来源:作者:点击数: 标签:
SilkTest高级进阶系列1-用textract来识别文本 软件测试 在以前的文章中,我简单介绍过如何使用silktest中的OCR功能识别界面或者是bmp图片上的文字内容。也提到过silktest自带一个ocr识别的pattern库,该库可以识别windows下的某些字体。不过这些字体都是常见

  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了。

  

原文转自:http://www.ltesting.net