應用場景:
當我們需要識別界面上面的字符(文字/數字/字母等)時,比如讀取游戲里面的數值等。
技術原理:
其實就是多點找色,找圖也是找很多像素點的找色,找色關鍵在於取色技術,找字符與找圖的區別是,找字符是用字庫的點陣去找色,然后字庫映射了一個字符;找圖是用圖片的點陣去找色。
制作大漠字庫:
網上有比較多的圖文和視頻教程,這里只做一些流程細節的補充,大概流程如下:
大漠抓圖(盡量只截圖文字)-》偏色設置,勾選(坐標選取文字顏色的點,偏色選取非文字區域的顏色,原理就是截圖區域內文字顏色和非文字顏色區分開來,以提取文字顏色的點陣)-》觀察二值化區域文字的顯示效果調整偏色-》點陣提取(注意如果是多個提取,截圖也是截取了多個文字,然后設置行和列,就是我們的截圖包含了多少行多少列)-》設置每個提取好點陣所代表的字符-》添加到當前字庫(一般字庫文件就在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),如果沒有找到返回空