TC官方合作论坛

标题: TC5.0特点介绍(5)--TC文字识别之实战 [打印本页]

作者: kevinqq    时间: 2015-3-7 17:32
标题: TC5.0特点介绍(5)--TC文字识别之实战
TC5.0特点介绍(5)--TC文字识别之实战


TC5.0自带文字识别功能实战
我们在开发自动化应用当中,文字识别功能应用是非常广泛的,在TC5.0以前的版本中,文字识别功能我们只能依赖外部的插件,而且市面上大部分工具做文字识别都是依赖于外部插件,TC5.0我们把文字识别功能做为了我们的一个基础功能接下来我将为大家介绍在TC5.0版本中,如何使用文字识别功能,文字识别我们分两部分讲解,上期我们已经讲过如何制作字库,今天我们来一起学习一下字库制作成功以后,在TC5.0中如何实际应用.


首先 我们当然要做的是字库,字库制作请大家 点击TC5.0特点介绍(4)--TC文字识别之字库的制作
window:
1、设置字库,字库设置是全局的,与所有的识字,找字功能息息相关.
  1. setdict(path,index)  
  2. 功能说明:设置字库,最多设置20个(0-19),必须设置了字库才能识别文字(android平台为字库编码必须utf-8,否则中文会出现乱码)
  3. file:字库文件路径,支持 rc: 路径
  4. index:字库的序号,取值为0-19,目前最多支持20个字库
  5. 返回值:成功返回真,失败返回假

复制代码

2、接下来我们就可以直接实战应用了,先看前台部分,详细介绍在代码里面注释
  1. //开始按钮_点击操作
  2. 功能 开始_点击()
  3.     var ret = setdict("rc:tc_dict.txt",0) //设置新的字库会覆盖之前的老字库,使用多字库的时候记录使用不同的索引,然后使用usedict 函数切换字库
  4.     traceprint("设置字库:"&ret)
  5. 结束

  6. //退出按钮_点击操作
  7. 功能 退出_点击()
  8.     var ret = ocr(0,0,300,50,"000000-000000",1.0) //识字功能,这是个我们应用中最常用的,详细介绍大家可以参考文档
  9.     traceprint("前台 "&ret)
  10. 结束

  11. 功能 按钮0_点击()
  12.     //这里添加你要执行的代码
  13.     var x,y
  14.     var ret = findtext(0,0,300,300,"文|字","000000-000000",0.9,x,y)//在找字功能,这个相信大家在游戏脚本过程中使用过非常多的
  15.     traceprint("前台 ret:"&ret & " x,"& x & " y,"& y)
  16. 结束

  17. 功能 按钮1_点击()
  18.     //这里添加你要执行的代码
  19.     //colorsethwnd 函数是我们在5.0比较具有特色的一个函数
  20.     //当我们的前台识别找字操作,在使用此函数设置成功之后,所有的前台操作坐标都是转换成以窗口句柄对应的窗口客户区左上角为0,0
  21.     colorsethwnd(editgettext("编辑框0"))
  22.     traceprint("设置图色窗口 "&editgettext("编辑框0"))
  23. 结束

  24. 功能 文字识别_初始化()
  25.     //这里添加你要执行的代码
  26.     editsettext("编辑框0",windowgetmyhwnd())
  27. 结束
复制代码



2、接下来我们开始讲解窗口文字识别如何实战
  1. 功能 按钮2_点击()
  2.     //这里添加你要执行的代码
  3.     var ret = windowocr(editgettext("编辑框0"),0,0,300,50,"000000-000000",1.0) //窗口识字属于我们常说的后台操作,但是由于后台模式的多样化,对window标准窗口的支持是比较完善的
  4.     traceprint("窗口 "&ret)
  5. 结束

  6. 功能 按钮3_点击()
  7.     //这里添加你要执行的代码
  8.     var x,y
  9.     var ret = windowfindtext(editgettext("编辑框0"),0,0,300,300,"文|字","000000-000000",0.9,x,y)//窗口找字属于我们常说的后台操作,但是由于后台模式的多样化,对window标准窗口的支持是比较完善的
  10.     traceprint("窗口 ret:"&ret & " x,"& x & " y,"& y)
  11. 结束
复制代码


TC5.0文字识别功能做为基础功能使用,比较以前有诸多方便,节省了大量的代码

android:
android平台中没有后台的概念,比较简单我们直接看代码

  1. function 识字1()
  2.     var ret = ocr(0,0,500,2000,"323232-303030",1.0)
  3.     traceprint("识别 "&ret)
  4. end

  5. function 找字1()
  6.     var x,y
  7.     var ret = findtext(0,0,500,2000,"b","323232-303030",1.0,x,y)
  8.     traceprint("找字 ret:"&ret & " x,"& x & " y,"& y)
  9. end

  10. function 设置字库() //设置字库的时候一定要记得 字库文件编码要是utf-8
  11.     setdict(getrcpath("rc:tc_dict.txt"),0)
  12. end
复制代码

效果图

在android平台中,大家要注意一个问题,字体不能太大,如果太大的情况出 有机率出会误找的情况

TC5.0 文字识别的基础教程就在这里给大家讲完了,测试项目会以上传下方附件中,同时希望大家能按照步骤练习一下,有不懂的可以在后面回帖说明.
老规矩,给一个TC5.0的下载链接:
http://www.tyuyan.net/index/download

android文字识别.rar (4.55 KB, 下载次数: 4762) 文字识别.rar (2.47 KB, 下载次数: 5032)



作者: 26666180    时间: 2015-3-7 18:10
难得还有沙发
作者: jrflshq1224    时间: 2015-3-7 19:01
好冷清,先占楼
作者: 言术    时间: 2015-3-7 19:32
没人了吗?帮顶。。。
作者: rainshine    时间: 2015-3-7 22:01
果断支持一个,应该加回复可见
作者: sam7894604    时间: 2015-3-8 01:03
支持清风~
作者: laowantong    时间: 2015-3-8 08:59
支持支持感谢
作者: 深林    时间: 2015-3-11 16:15

作者: kelejiabing101    时间: 2015-3-12 14:43
老大 你的文字识别  增加一个 按键新出的 文字识别 不要字库的 直接  字体 字号 就能找字了
当然这个也有局限  不支持多色找字
作者: kevinqq    时间: 2015-3-12 15:20
kelejiabing101 发表于 2015-3-12 14:43
老大 你的文字识别  增加一个 按键新出的 文字识别 不要字库的 直接  字体 字号 就能找字了
当然这个也有局 ...

这个同样也可以使用系统字库 也可以使用非系统字库不是更加灵活
作者: kelejiabing101    时间: 2015-3-12 16:10
kevinqq 发表于 2015-3-12 15:20
这个同样也可以使用系统字库 也可以使用非系统字库不是更加灵活

设置系统字库 你也要做字库啊
TC论坛 有个图灵插件  你看看他是怎么找字的 和 按键的一样的 只是都不支持多色  
XY = Plugin.Bkgnd.FindWordShape(Hwnd, 0, 0, 1024, 768, "我的电脑", "宋体", 9, 0, 0.9)
上面就是他们的命令,使用前不需要设置字库 直接用 字体 和字号  测试只能支持单色文字  对多色的文字好像不行.
个人猜测就是多点找形状命令的一个变形(文字转换成多点的数据,然后找形状)

作者: 332475520    时间: 2015-3-14 09:47
kevinqq 发表于 2015-3-12 15:20
这个同样也可以使用系统字库 也可以使用非系统字库不是更加灵活

管理员你好   现在大部分游戏都有保护   用5.0的后台识字   能保证像大漠那样不被检测到吗  
作者: kevinqq    时间: 2015-3-14 17:27
332475520 发表于 2015-3-14 09:47
管理员你好   现在大部分游戏都有保护   用5.0的后台识字   能保证像大漠那样不被检测到吗   ...

这个问题 我相信没有任何人能 给予你保证 不被检测到
作者: 我喜欢TC    时间: 2015-3-16 12:25
这样子的,TC真的是更新得太牛了
作者: kim1971    时间: 2015-3-25 05:01
线程扩展开启  这项怎么没了
作者: MindSerene    时间: 2015-3-27 20:29
很棒,看过了。
作者: 582844396    时间: 2015-4-7 19:30
看看
作者: 582844396    时间: 2015-4-7 19:30
看看
作者: rxcxr    时间: 2015-4-19 04:53
安卓上好像必须相似度为1才能ocr出来字呀,,,,0.9都不行
作者: QQ33468453    时间: 2015-4-22 18:40
做字库用那个工具

作者: shmilylzy0815    时间: 2015-4-23 22:15
setdict(getrcpath("rc:tc_dic.txt"),0) //设置字库
   
        var win = windowfind("tt.txt - 记事本")
    messagebox(win)
   
    var text = windowocr(win,0,0,300,50,"000000-000000",1.0)

可以找到窗口、在窗口里面找字就不行了、这是为什么呢?

作者: 770061932    时间: 2015-5-5 19:30
看看喽~~~~~~
作者: 我爱酱油    时间: 2015-5-14 15:58
为什么在图色工具里可以找到字,而在函数调用里就是找不到呢
作者: 我爱酱油    时间: 2015-5-14 16:11
难道不支持多个颜色的格式吗?哇卡卡卡卡卡卡卡卡!
作者: 我爱酱油    时间: 2015-5-14 17:33
刚一说完就正常了
作者: 50868587    时间: 2015-5-19 22:34
看看 支持 顶一下
作者: sdjb7202    时间: 2015-5-29 12:56
5楼说了要顶一个
作者: sj6071    时间: 2015-6-11 11:21
是不是以后找图后台 鼠标后台 键盘后台 就不用大漠了?
作者: 2645572175    时间: 2015-6-24 18:19

作者: baby1078    时间: 2015-7-10 00:27
受教了,谢谢分享。
作者: aa112233    时间: 2015-7-24 14:29
jhfhf351651320
作者: 276961900    时间: 2015-8-15 13:53
TC简单开发
作者: 276961900    时间: 2015-8-15 14:08
表情
作者: cy405427586    时间: 2015-11-14 11:05
小白有问题请教
为什么每次在语句前面都加一个   变量 ret=
然后后面才加程序
就像是上面的 变量 ret=本文设置()
直接写  文本设置()  不也一样能执行程序的吗
作者: 波罗吹水    时间: 2015-12-21 11:14
我没什么好说滴,00
作者: fanghonxian    时间: 2015-12-30 22:04
为什么游戏里面截图得字制作字库得时候不行,字很看不清楚,要调分辨吗?
作者: tf6985    时间: 2016-3-15 16:20
dsfsfa sdf
作者: yishunjian108    时间: 2016-4-1 20:58
C:\新建文件夹\mmexport1361927835320(1)
作者: yishunjian108    时间: 2016-4-1 21:00






欢迎光临 TC官方合作论坛 (http://bbs.52tc.co/) Powered by Discuz! X3.1