大漠插件字库的制作和字符识别
应用场景:
当我们需要识别界面上面的字符(文字/数字/字母等)时,比如读取游戏里面的数值等。
技术原理:
其实就是多点找色,找图也是找很多像素点的找色,找色关键在于取色技术,找字符与找图的区别是,找字符是用字库的点阵去找色,然后字库映射了一个字符;找图是用图片的点阵去找色。
制作大漠字库:
网上有比较多的图文和视频教程,这里只做一些流程细节的补充,大概流程如下:
大漠抓图(尽量只截图文字)-》偏色设置,勾选(坐标选取文字颜色的点,偏色选取非文字区域的颜色,原理就是截图区域内文字颜色和非文字颜色区分开来,以提取文字颜色的点阵)-》观察二值化区域文字的显示效果调整偏色-》点阵提取(注意如果是多个提取,截图也是截取了多个文字,然后设置行和列,就是我们的截图包含了多少行多少列)-》设置每个提取好点阵所代表的字符-》添加到当前字库(一般字库文件就在dm.dll目录下的dm_soft.txt文件)-》制作完成
使用大漠字库:
dm.SetDict(0, "dm_soft.txt")//设置字库文件,把这个字库文件编号为0
查找字符串:
dm_ret = dm.FindStr(0,0,2000,2000,"僵尸","ffffff-000000",1.0,intX,intY)
参数解析:坐标代表查找的区域范围,僵尸代表查找的字符,f-0代表偏色,1.0代表精确程度,x,y代表找到的返回坐标
识别字符串:
dm_ret = dm.Ocr(0,0,2000,2000,"ffffff-000000",1.0)
参数解析:一般用于数值识别等,dm_ret会返回找到的字符(比如:12345),如果没有找到返回空
暗夜之中,才见繁星;危机之下,暗藏转机;事在人为,为者常成。