TC官方合作论坛

标题: 解密大漠插件文字识别原理(带源码) [打印本页]

作者: 冷月无痕    时间: 2014-3-16 20:54
标题: 解密大漠插件文字识别原理(带源码)
本帖最后由 冷月无痕 于 2014-4-26 16:02 编辑

首先,好吧,必须承认我标题党了...
文字识别原理在很多人面前已经不是什么秘密了,但是通过理解这些原理,我们可以更好的使用大漠插件文字识别功能
事情的起源是我异想天开的想用纯TC代替大漠插件进行文字识别,又懒得自己写一个字库制作工具,就想利用大漠综合工具制作的字库进行文字识别...
于是乎就开始探索大漠字库的奥秘...

402807FF801002$1$0.0.17$11
以上是一个1字的大漠字库信息,我们可以很明显的看到,信息字串用"$"符号,分为4个部分,下面我们就来一一分析这4个部分代表什么,有什么用

第一部分 402807FF801002 很明显是一个十六进制字符串
我们知道电脑显示图也好字也好,都是以像素颜色点来显示的.
那么一个字的组成,就是一个点阵的组合,如下图:
[attach]14933[/attach]
我们可以看到,这是一个二值化点阵,点阵只有两种色块(像素点)组成,黑色(字体色)和灰色(背景色)
大漠插件用1表示黑色(字体色),用0表示灰色(背景色),如下
00100
11100
00100
00100
00100
00100
00100
00100
00100
00100
11111
以从上到下,从左到右的顺序排列
那么上面的点阵,就是:0100000000101000000001111111111110000000000100000000001
最后,每4个点阵为一组,作为二进制,转换为十六进制,如下图:
[attach]14934[/attach]
我们可以看到最后一组多加了一个0,这个0是怎么加的呢?
以字体点阵的最大宽度(例:5)除以4,余数是多少就加多少个0(例:5/4余1)

402807FF801002,我们可以看到字库的点阵信息就还原出来了
那么,字库信息的第一部分就是字体点阵的信息
用TC把二值化点阵信息转换为大漠字库点阵信息的代码为:

第二部分 1  我们制作字库时定义的字
这个就不用再详细解释了吧,这是代表了字库点阵信息的字符,是我们在制作字库时,自己定义的(系统字库自动定义).如下图:
[attach]14935[/attach]

多余说一点,自己制作字库时,这个不是强制性的,比如上图的1,我们可以定义为"壹",而在写代码的时候,我们可以写找"壹"字,那么当游戏画面出现1时,就会返回1字的坐标

第三部分 0.0.17  字体点阵有效像素点数量
这个比较复杂,比较难形象的描述出来
首先,这个部分又以.分隔为3个小部分,第三个小部分比较简单,就是字体点阵黑色点(字体像素点),也就是1的数量(例:17,就是点阵中有17个1)
前面两个小部分,简单描述就是,从大漠综合工具,我们可以看到,大漠提取字体点阵最多只会显示11行,那么超过11行的点阵是不是就不提取了呢?
答案当然是否定的
第一部分 表示的就是,超过11行的点阵信息中最左边的字体点阵黑色点(字体像素点,也就是1)的所在列,超过11行以内的点阵信息中最左边的字体点阵黑色点(字体像素点,也就是1)的所在列的差值
简单的说就是当字体点阵超过11行以后,11行以后的点阵中最左边的1超过了11行以内最左边的1的列数(好吧,我自己都说绕了),看下图:
6FE510AA154EA857CAA1546A8010$岸$1.0.49$12
例如系统字库宋体9号中的"岸"字,如下图:
[attach]14937[/attach]
大漠工具提取的点阵(只显示了11行)
[attach]14939[/attach]
通过放大,我们可以看到第十二行的黑色像素(1),超过了上面的零到十一行的黑色像素(1),1列

那么第二小部分,就是当字体点阵超过11行以后,11行以后的点阵中最右边的1超过了11行以内最右边的1的列数
用以上的示例来说:
1字的 0.0.17 就是字体点阵超过11行以后,没有比11行以内的像素更宽的了,整个点阵有17个有效像素点(黑色,1)
岸字的 1.0.49 就是字体点阵超过11行以后,最左边超过了1列,最右边没有超过11行以内的像素点,整个点阵有49个有效像素点(黑色,1)
这说明,当我们提取点阵的时候,如果是1.0.49 岸字这样的情况,就要比提取11行以内的点阵x坐标减1(向左多取一列),这样的范围才是精准匹配的
好吧,代码比较长,我就不放出来了...

第四部分 11  字体点阵有效行数
也就是大漠字体点阵信息一共提取了几行(这说明,大漠也不是全部提取的,比如上面的宋体9的岸,一共是13行51个像素点(1),大漠只提取了12行49个像素点(1))

最后,是测试速度,在10*15的范围内,3000字的系统字库,找示例1的速度为952毫秒(也就是近1秒,汗一个...好吧,这是没有优化的结果,其实还可以优化的)
[attach]14940[/attach]
返回的是左边第一个1字的左上角坐标
[attach]14941[/attach]
1字的字库信息保存在,3000字系统字库中最后一行

下面是部分测试代码:


其实,这就是个玩...大家伙不必跟冷月较真的...
冷月只是想在那些有事没事就在你电脑里搜索大漠插件的游戏里,也可以识字而已...

好吧,以上就当小说看了吧,下面才是本贴正题......哈哈哈
大漠识字基础常识1: 以颜色像素为点阵进行记录(说明无论是字还是图我们都可以利用大漠工具做成字库进行识别)
大漠识字基础常识2: 字库信息中并无颜色的记录(说明字库里的信息是没有保存字体颜色信息的,我们在写识字或找字命令时,用什么颜色值参数,就以什么颜色值进行匹配)
大漠识字基础常识3: 做字库时,大漠工具显示的点阵是否完整并不影响找字识字效果
大漠识字基础常识4: 做字库时,字体点阵是否完整的字并不影响找字识字效果,如下图:
[attach]14942[/attach]
这样并不影响找字识字,只要颜色值不会变,就会提取相同的点阵并匹配到对应的字
大漠识字基础常识5:....
还有很多,大家知道了原理都可以自己领悟...冷月就不一一列举了

通过这次学习,我们可以学到一个很重要的秘诀...不知道你们学到没,反正冷月是学到了...
了解原理,能使我们更灵活的运用

比如:T语言的基础语法,T语言的线程,T语言的对象,图色键鼠模拟脚本的基本原理......
这样我们再也不会为语法错误,怎么多开,怎么多开时使用插件,怎么模拟一个游戏里的操作功能等等等问题而烦恼了
最后祝大家使用TC工具愉快,开发脚本顺利,马年赚钱马不停蹄......(以下省略78个字)
TC冷月无痕入门教学群
54799735 每晚21点群视频现场免费教学



作者: 美珍子    时间: 2014-3-16 21:05
好东西要顶。。·~
作者: myaoao    时间: 2014-3-16 21:07
这个得看看。
作者: shadow    时间: 2014-3-16 21:07
看看那啊
作者: qjl515728270    时间: 2014-3-16 21:09
加辣=1
循环(真)
如果(冷月无痕)
螺蛳粉&加辣
否则
加辣=加辣+1
如果结束
辅助.等待(100)
循环结束
作者: x0456777    时间: 2014-3-16 21:09
。。厉害啊。

作者: shanshan    时间: 2014-3-16 21:11
貌似前3?
作者: YGV    时间: 2014-3-16 21:11
好东西赶快收藏
作者: 菜鸟狙丶    时间: 2014-3-16 21:19
没用过大漠,闪过.
作者: 今非    时间: 2014-3-16 21:35
老师牛掰啊 ----------额哈哈
作者: 1757663220    时间: 2014-3-16 22:11
vbcgcgcfgdfg
作者: jushunhe    时间: 2014-3-16 22:30
TCCCCCC
作者: 玖天_Teemo    时间: 2014-3-16 22:40
看看⊙▽⊙
作者: zxw445    时间: 2014-3-16 22:58
这个东西很好,我一直很想理解下字库的生成,却找不到方法,今天偶然遇到了。真是我的福分了。

支持!希望帖子不要沉!

作者: jrflsh    时间: 2014-3-16 23:36
不是一般的牛x哈,学习了
作者: narutowz    时间: 2014-3-17 01:44
支持
作者: 续花丶    时间: 2014-3-17 03:39
学习一下,
作者: 946413    时间: 2014-3-17 05:04

作者: 星.月    时间: 2014-3-17 08:00
回复学习
作者: jimye0526    时间: 2014-3-17 08:41
嘿嘿 支持

作者: Rambo    时间: 2014-3-17 08:48
看看
作者: itcfan    时间: 2014-3-17 09:42
谢谢分享
作者: abcaaa000    时间: 2014-3-17 09:42
顶顶,,,
作者: abcaaa000    时间: 2014-3-17 09:42
顶顶,,,
作者: bMk    时间: 2014-3-17 09:43
为了看全
作者: axy1543    时间: 2014-3-17 09:58
afsdasdf
作者: kkddij    时间: 2014-3-17 09:58
看看
作者: suya3204    时间: 2014-3-17 11:39
很需要这样的教程啊
作者: Abin    时间: 2014-3-17 12:13
牛掰啊!!! 很精辟的噢!!!
作者: 328230929    时间: 2014-3-17 14:52
我晕得很
作者: timeskj2008    时间: 2014-3-17 16:29
好东西
作者: zxl19891030    时间: 2014-3-17 16:30
11111111111
作者: fyq2000    时间: 2014-3-17 22:26
11111111111111111
作者: chenzhaohui    时间: 2014-3-18 09:51
学习大漠识字
作者: zwtderek1986    时间: 2014-3-18 10:08
牛逼啊,学习学习

作者: icetc    时间: 2014-3-18 10:50
学习啊.厉害啊~
作者: q741230412    时间: 2014-3-18 12:07

作者: MCyouxi    时间: 2014-3-18 13:51

作者: 810896809    时间: 2014-3-18 14:59


作者: 自由人    时间: 2014-3-18 20:38
学习

作者: .大东    时间: 2014-3-19 01:07
111111111111

作者: EZ脚本学院    时间: 2014-3-19 03:09
的确很不错 对于很多想自己制作大漠字库工具的童鞋来说 很不错(当然 用大漠自己的命令更好 哇哈哈哈)
作者: linyu90812    时间: 2014-3-19 10:52
只看不顶不地道
作者: qq40169    时间: 2014-3-19 12:14
k看看
作者: 如此美丽。    时间: 2014-3-19 13:20
学习  
作者: whoyeyang    时间: 2014-3-19 17:38
感谢分享!!
作者: 蓉蓉哎    时间: 2014-3-19 21:38
1111111111111
作者: killer201233    时间: 2014-3-19 22:54
老师牛掰啊 ----------额哈哈
作者: a__gu    时间: 2014-3-19 22:55
好吧!!大漠插件——的大名!!
作者: aimei_8866999    时间: 2014-3-19 23:28
谢谢分享
作者: haking    时间: 2014-3-20 00:00

作者: JSDYWZ    时间: 2014-3-20 00:31
大漠插件文字识别原理(
作者: saga    时间: 2014-3-20 01:25
. dingyige
作者: qq113220715    时间: 2014-3-20 12:46
好东西要顶。。·~
作者: duzuizhiqiu    时间: 2014-3-21 03:06
冒个泡
作者: f9696    时间: 2014-3-21 09:44
顶起。。。。。。。。。
作者: yinluno1    时间: 2014-3-21 10:12
看看大神的做法  真是受益匪浅啊
作者: 1515274185    时间: 2014-3-21 10:38
这个很给力,我也正在做这方面的研究,非常感谢作者无私的奉献
作者: hssyqs    时间: 2014-3-21 10:48
好好

作者: sunerle    时间: 2014-3-21 20:05
好东西要顶
作者: gloryskypku    时间: 2014-3-21 23:03
高人啊,学习学习
作者: ybc178    时间: 2014-3-22 01:41
酱油党路过
作者: 有限的时间    时间: 2014-3-22 17:37
支持了!
作者: zc317414    时间: 2014-3-22 21:04
ipin@@@@@@@@@@@@@@@
作者: 逍遥大大    时间: 2014-3-22 22:56
555555555555
作者: kam    时间: 2014-3-22 23:45
学习,
作者: ktv9779    时间: 2014-3-23 13:50
bvgcvcb
作者: 薇草天下    时间: 2014-3-23 20:14
嘿嘿,感谢楼主分享!!...
作者: 26666180    时间: 2014-3-24 12:45
我去,好XX啊
作者: letter21th    时间: 2014-3-24 13:04
脚本学习基地,几百种脚本辅助任意学习实践 脚本学习基地,几百种脚本辅助任意学习实践 脚本学习基地,几百种脚本辅助任意学习实践
作者: 野猪    时间: 2014-3-24 15:55
此帖必火
作者: 820764959ggc    时间: 2014-3-24 16:02
功能
作者: 蓝色侠客    时间: 2014-3-24 16:37
其实很简单
作者: 2596060677    时间: 2014-3-24 17:22
468564546
作者: huilan    时间: 2014-3-24 18:16
们可以看到最
作者: 水水水水    时间: 2014-3-24 19:11
现在插件都收费了吗
作者: lidongxu    时间: 2014-3-24 20:03

作者: iyyn001    时间: 2014-3-24 22:53
原理
作者: xmm1100    时间: 2014-3-25 11:21
强大的功能啊!
作者: lulei1    时间: 2014-3-25 15:00

作者: fjshwr    时间: 2014-3-25 18:35
121212121212121212111222
作者: xiatian887    时间: 2014-3-26 12:04
谢谢分享~
作者: ttcc22    时间: 2014-3-26 14:45
支持                  
作者: kwq0    时间: 2014-3-26 18:30
vbvbcbvbc

作者: qq462621349    时间: 2014-3-26 20:28
必须顶

作者: 菜新手    时间: 2014-3-26 23:51
呵呵
作者: gdidf2010    时间: 2014-3-27 00:30
学习
作者: 52264729    时间: 2014-3-27 23:19

作者: Samuei    时间: 2014-3-28 15:10
肥嘟嘟嘟嘟嘟嘟嘟嘟嘟嘟嘟嘟嘟嘟嘟嘟嘟嘟嘟嘟嘟嘟嘟嘟嘟嘟嘟嘟嘟嘟嘟嘟嘟嘟
作者: xloongtc    时间: 2014-3-28 17:28
顶顶顶顶顶大地方
作者: fightspirite    时间: 2014-3-29 10:10
好东东,学习。
作者: jaera    时间: 2014-3-29 13:38
看看字体信息是如何做出来的

作者: a3220303    时间: 2014-3-29 16:43
jkgjhfghfhgfhj
作者: aqyzjz    时间: 2014-3-29 17:56

作者: 歪不歪    时间: 2014-3-29 21:10
你还真有功夫整来...
作者: faithk    时间: 2014-3-29 22:35
恢复看看啊
作者: 墨染年华    时间: 2014-3-29 22:58
学习
作者: 杨建华    时间: 2014-3-29 23:00
谢谢
作者: yuan2659    时间: 2014-3-30 09:04
要看
作者: sd172240    时间: 2014-3-30 09:15
这个得看看。




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